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.mjs CHANGED
@@ -1,18 +1,3 @@
1
- import "core-js/modules/es.error.cause.js";
2
- import "core-js/modules/es.array.push.js";
3
- import "core-js/modules/es.object.from-entries.js";
4
- import "core-js/modules/es.set.difference.v2.js";
5
- import "core-js/modules/es.set.intersection.v2.js";
6
- import "core-js/modules/es.set.is-disjoint-from.v2.js";
7
- import "core-js/modules/es.set.is-subset-of.v2.js";
8
- import "core-js/modules/es.set.is-superset-of.v2.js";
9
- import "core-js/modules/es.set.symmetric-difference.v2.js";
10
- import "core-js/modules/es.set.union.v2.js";
11
- import "core-js/modules/esnext.iterator.constructor.js";
12
- import "core-js/modules/esnext.iterator.filter.js";
13
- import "core-js/modules/esnext.iterator.for-each.js";
14
- import "core-js/modules/esnext.iterator.map.js";
15
- import "core-js/modules/web.immediate.js";
16
1
  import { addClass, empty, observeVisibilityChangeOnce, removeClass } from "./helpers/dom/element.mjs";
17
2
  import { isFunction } from "./helpers/function.mjs";
18
3
  import { isDefined, isUndefined, isRegExp, _injectProductInfo, isEmpty } from "./helpers/mixed.mjs";
@@ -30,7 +15,6 @@ import { getValidator } from "./validators/registry.mjs";
30
15
  import { randomString, toUpperCaseFirst } from "./helpers/string.mjs";
31
16
  import { rangeEach, rangeEachReverse } from "./helpers/number.mjs";
32
17
  import TableView from "./tableView.mjs";
33
- import DataSource from "./dataMap/dataSource.mjs";
34
18
  import { spreadsheetColumnLabel } from "./helpers/data.mjs";
35
19
  import { IndexMapper } from "./translations/index.mjs";
36
20
  import { registerAsRootInstance, hasValidParameter, isRootInstance } from "./utils/rootInstance.mjs";
@@ -38,7 +22,7 @@ import { DEFAULT_COLUMN_WIDTH } from "./3rdparty/walkontable/src/index.mjs";
38
22
  import { hasLanguageDictionary, getValidLanguageCode, getTranslatedPhrase } from "./i18n/registry.mjs";
39
23
  import { warnUserAboutLanguageRegistration, normalizeLanguageCode } from "./i18n/utils.mjs";
40
24
  import { Selection } from "./selection/index.mjs";
41
- import { MetaManager, DynamicCellMetaMod, ExtendMetaPropertiesMod, replaceData } from "./dataMap/index.mjs";
25
+ import { DataSource, MetaManager, DynamicCellMetaMod, ExtendMetaPropertiesMod, replaceData, runSourceDataValidator, runSourceDataValidators } from "./dataMap/index.mjs";
42
26
  import { createViewportScroller, Hooks, CellRangeToRenderableMapper } from "./core/index.mjs";
43
27
  import { FocusGridManager, createFocusScopeManager, registerAllFocusScopes } from "./focusManager/index.mjs";
44
28
  import { createUniqueMap } from "./utils/dataStructures/uniqueMap.mjs";
@@ -46,18 +30,14 @@ import { createShortcutManager } from "./shortcuts/index.mjs";
46
30
  import { registerAllShortcutContexts } from "./shortcutContexts/index.mjs";
47
31
  import { getThemeClassName } from "./helpers/themes.mjs";
48
32
  import { StylesHandler } from "./utils/stylesHandler.mjs";
49
- import { deprecatedWarn, warn } from "./helpers/console.mjs";
33
+ import { warn } from "./helpers/console.mjs";
34
+ import { throwWithCause } from "./helpers/errors.mjs";
50
35
  import { install as installAccessibilityAnnouncer, uninstall as uninstallAccessibilityAnnouncer } from "./utils/a11yAnnouncer.mjs";
51
36
  import { getValueSetterValue } from "./utils/valueAccessors.mjs";
37
+ import { createThemeManager } from "./themes/engine/index.mjs";
38
+ import { getTheme, hasTheme, registerTheme, mainTheme } from "./themes/index.mjs";
52
39
  let activeGuid = null;
53
40
 
54
- /**
55
- * A set of deprecated warn instances.
56
- *
57
- * @type {Set<string>}
58
- */
59
- const deprecatedWarnInstances = new WeakSet();
60
-
61
41
  /**
62
42
  * Keeps the collection of the all Handsontable instances created on the same page. The
63
43
  * list is then used to trigger the "afterUnlisten" hook when the "listen()" method was
@@ -140,7 +120,7 @@ const deprecationWarns = new Set();
140
120
  * standalone: true,
141
121
  * imports: [HotTableModule],
142
122
  * template: ` <div>
143
- * <hot-table themeName="ht-theme-main" [settings]="gridSettings" />
123
+ * <hot-table [settings]="gridSettings" />
144
124
  * </div>`,
145
125
  * })
146
126
  * export class ExampleComponent implements AfterViewInit {
@@ -338,21 +318,29 @@ export default function Core(rootContainer, userSettings) {
338
318
  hot: instance,
339
319
  rootElement: instance.rootElement,
340
320
  rootDocument: instance.rootDocument,
341
- onThemeChange: validThemeName => {
321
+ onThemeChange: themeName => {
342
322
  if (isRootInstance(this)) {
343
323
  removeClass(this.rootWrapperElement, /ht-theme-.*/g);
344
324
  removeClass(this.rootPortalElement, /ht-theme-.*/g);
345
- if (validThemeName) {
346
- addClass(this.rootWrapperElement, validThemeName);
347
- addClass(this.rootPortalElement, validThemeName);
325
+ if (themeName) {
326
+ addClass(this.rootWrapperElement, themeName);
327
+ addClass(this.rootPortalElement, themeName);
348
328
  if (!getComputedStyle(this.rootWrapperElement).getPropertyValue('--ht-line-height')) {
349
- warn(`The "${validThemeName}" theme is enabled, but its stylesheets are missing or not imported correctly. \
350
- Import the correct CSS files in order to use that theme.`);
329
+ 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.');
351
330
  }
352
331
  }
353
332
  }
354
- }
333
+ },
334
+ injectCoreCss: typeof (userSettings === null || userSettings === void 0 ? void 0 : userSettings.injectCoreCss) === 'boolean' ? userSettings.injectCoreCss : true
355
335
  });
336
+
337
+ /**
338
+ * ThemeManager instance.
339
+ *
340
+ * @private
341
+ * @type {ThemeManager|null}
342
+ */
343
+ this.themeManager = null;
356
344
  mergedUserSettings.language = getValidLanguageCode(mergedUserSettings.language);
357
345
  const settingsWithoutHooks = Object.fromEntries(Object.entries(mergedUserSettings).filter(_ref => {
358
346
  let [key] = _ref;
@@ -501,7 +489,9 @@ export default function Core(rootContainer, userSettings) {
501
489
  const selectionLayerLevel = selectionRange.size() - 1;
502
490
  this.runHooks('afterSelection', from.row, from.col, to.row, to.col, preventScrolling, selectionLayerLevel);
503
491
  this.runHooks('afterSelectionByProp', from.row, instance.colToProp(from.col), to.row, instance.colToProp(to.col), preventScrolling, selectionLayerLevel);
504
- if (isLastSelectionLayer && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {
492
+ const selectionSource = selection.getSelectionSource();
493
+ const ignoreScrollSources = ['loadData', 'updateData'];
494
+ if (isLastSelectionLayer && !ignoreScrollSources.includes(selectionSource) && (!preventScrolling.isTouched() || preventScrolling.isTouched() && !preventScrolling.value)) {
505
495
  viewportScroller.scrollTo(cellCoords);
506
496
  }
507
497
  const isSelectedByRowHeader = selection.isSelectedByRowHeader();
@@ -521,10 +511,10 @@ export default function Core(rootContainer, userSettings) {
521
511
  } else {
522
512
  removeClass(this.rootElement, ['ht__selection--rows', 'ht__selection--columns']);
523
513
  }
524
- if (!['shift', 'refresh'].includes(selection.getSelectionSource())) {
514
+ if (!['shift', 'refresh', 'loadData', 'updateData'].includes(selectionSource)) {
525
515
  editorManager.closeEditor(null);
526
516
  }
527
- if (selection.getSelectionSource() !== 'refresh') {
517
+ if (!['refresh', 'loadData', 'updateData'].includes(selectionSource)) {
528
518
  instance.view.render();
529
519
  editorManager.prepareEditor();
530
520
  }
@@ -873,7 +863,7 @@ export default function Core(rootContainer, userSettings) {
873
863
  }
874
864
  break;
875
865
  default:
876
- throw new Error(`There is no such action "${action}"`);
866
+ throwWithCause(`There is no such action "${action}"`);
877
867
  }
878
868
  if (!keepEmptyRows) {
879
869
  grid.adjustRowsAndCols(); // makes sure that we did not add rows that will be removed in next refresh
@@ -1117,6 +1107,12 @@ export default function Core(rootContainer, userSettings) {
1117
1107
  }
1118
1108
  if (!hasValueSetter && (typeof orgValue !== 'object' || orgValue === null)) {
1119
1109
  pushData = false;
1110
+
1111
+ // Enabling `parsePastedValue` relaxes schema validation, so object-based values can be pasted
1112
+ // into non-object-based cells
1113
+ if (cellMeta.parsePastedValue && source === 'CopyPaste.paste') {
1114
+ pushData = true;
1115
+ }
1120
1116
  } else if (orgValue !== null) {
1121
1117
  const orgValueSchema = duckSchema(Array.isArray(orgValue) ? orgValue : orgValue[0] || orgValue);
1122
1118
  const valueSchema = duckSchema(Array.isArray(value) ? value : value[0] || value);
@@ -1210,7 +1206,7 @@ export default function Core(rootContainer, userSettings) {
1210
1206
  focusGridManager.init();
1211
1207
  if (isRootInstance(this)) {
1212
1208
  installAccessibilityAnnouncer(instance.rootPortalElement);
1213
- _injectProductInfo(mergedUserSettings.licenseKey, this.rootWrapperElement);
1209
+ _injectProductInfo(mergedUserSettings.licenseKey, this.rootWrapperElement, "20/02/2026");
1214
1210
  }
1215
1211
  instance.runHooks('init');
1216
1212
  this.render();
@@ -1231,6 +1227,31 @@ export default function Core(rootContainer, userSettings) {
1231
1227
  instance.runHooks('afterInit');
1232
1228
  };
1233
1229
 
1230
+ /**
1231
+ * Initializes the ThemeManager with the given theme configuration.
1232
+ *
1233
+ * @param {object|boolean} theme - The theme configuration object or `true` to use the default theme.
1234
+ */
1235
+ function initializeThemeManager(theme) {
1236
+ let themeObject;
1237
+ if (typeof theme === 'undefined') {
1238
+ if (hasTheme('main')) {
1239
+ themeObject = getTheme('main');
1240
+ } else {
1241
+ themeObject = registerTheme(mainTheme);
1242
+ }
1243
+ themeObject = getTheme('main');
1244
+ } else if (typeof theme.getThemeConfig !== 'function') {
1245
+ themeObject = registerTheme(theme);
1246
+ } else {
1247
+ themeObject = theme;
1248
+ }
1249
+ instance.themeManager = createThemeManager({
1250
+ hot: instance,
1251
+ themeObject
1252
+ });
1253
+ }
1254
+
1234
1255
  /**
1235
1256
  * @ignore
1236
1257
  * @returns {object}
@@ -1274,7 +1295,7 @@ export default function Core(rootContainer, userSettings) {
1274
1295
  const waitingForValidator = new ValidatorsQueue();
1275
1296
  let shouldBeCanceled = true;
1276
1297
  waitingForValidator.onQueueEmpty = () => {
1277
- if (activeEditor && shouldBeCanceled) {
1298
+ if (activeEditor && shouldBeCanceled && activeEditor._closeAfterDataChange) {
1278
1299
  activeEditor.cancelChanges();
1279
1300
  }
1280
1301
  callback(); // called when async validators are resolved and beforeChange was not async
@@ -1299,7 +1320,7 @@ export default function Core(rootContainer, userSettings) {
1299
1320
  instance.validateCell(newValue, cellProperties, function (index, cellPropertiesReference) {
1300
1321
  return function (result) {
1301
1322
  if (typeof result !== 'boolean') {
1302
- throw new Error('Validation error: result is not boolean');
1323
+ throwWithCause('Validation error: result is not boolean');
1303
1324
  }
1304
1325
  if (result === false && cellPropertiesReference.allowInvalid === false) {
1305
1326
  shouldBeCanceled = false;
@@ -1370,15 +1391,20 @@ export default function Core(rootContainer, userSettings) {
1370
1391
  datamap.set(changes[i][0], changes[i][1], changes[i][3]);
1371
1392
  }
1372
1393
  const hasChanges = changes.length > 0;
1394
+ const activeEditor = editorManager.getActiveEditor();
1395
+ const closeEditorAfterDataChange = activeEditor === null || activeEditor === void 0 ? void 0 : activeEditor._closeAfterDataChange;
1373
1396
  if (hasChanges) {
1374
1397
  grid.adjustRowsAndCols();
1375
1398
  instance.runHooks('beforeChangeRender', changes, source);
1376
- editorManager.closeEditor();
1399
+ if (activeEditor !== null && activeEditor !== void 0 && activeEditor.isOpened() && closeEditorAfterDataChange) {
1400
+ editorManager.closeEditor();
1401
+ }
1377
1402
  instance.view.adjustElementsSize();
1378
1403
  instance.render();
1379
- editorManager.prepareEditor();
1404
+ if (activeEditor !== null && activeEditor !== void 0 && activeEditor.isOpened() && closeEditorAfterDataChange || !(activeEditor !== null && activeEditor !== void 0 && activeEditor.isOpened())) {
1405
+ editorManager.prepareEditor();
1406
+ }
1380
1407
  instance.runHooks('afterChange', changes, source || 'edit');
1381
- const activeEditor = instance.getActiveEditor();
1382
1408
  if (activeEditor && isDefined(activeEditor.refreshValue)) {
1383
1409
  activeEditor.refreshValue();
1384
1410
  }
@@ -1466,7 +1492,7 @@ export default function Core(rootContainer, userSettings) {
1466
1492
  value = instance.runHooks('beforeValidate', value, cellProperties.visualRow, cellProperties.prop, source);
1467
1493
 
1468
1494
  // To provide consistent behavior, validation should be always asynchronous
1469
- instance._registerImmediate(() => {
1495
+ instance._registerMicrotask(() => {
1470
1496
  validator.call(cellProperties, value, valid => {
1471
1497
  if (!instance) {
1472
1498
  return;
@@ -1480,7 +1506,7 @@ export default function Core(rootContainer, userSettings) {
1480
1506
  });
1481
1507
  } else {
1482
1508
  // resolve callback even if validator function was not found
1483
- instance._registerImmediate(() => {
1509
+ instance._registerMicrotask(() => {
1484
1510
  cellProperties.valid = true;
1485
1511
  done(cellProperties.valid, false);
1486
1512
  });
@@ -1560,10 +1586,11 @@ export default function Core(rootContainer, userSettings) {
1560
1586
  for (i = 0, ilen = input.length; i < ilen; i++) {
1561
1587
  const [visualRow, visualColumn, newValue] = input[i];
1562
1588
  if (typeof input[i] !== 'object') {
1563
- throw new Error('Method `setDataAtCell` accepts row number or changes array of arrays as its first parameter');
1589
+ throwWithCause('Method `setDataAtCell` accepts row number or changes array of arrays as its first parameter');
1564
1590
  }
1565
- if (typeof visualColumn !== 'number') {
1566
- 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
1591
+ if (typeof input[i][1] !== 'number') {
1592
+ // eslint-disable-next-line max-len
1593
+ throwWithCause('Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`');
1567
1594
  }
1568
1595
  if (visualColumn >= this.countCols()) {
1569
1596
  prop = visualColumn;
@@ -1701,7 +1728,7 @@ export default function Core(rootContainer, userSettings) {
1701
1728
  */
1702
1729
  this.populateFromArray = function (row, column, input, endRow, endCol, source, method) {
1703
1730
  if (!(typeof input === 'object' && typeof input[0] === 'object')) {
1704
- 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
1731
+ throwWithCause('populateFromArray parameter `input` must be an array of arrays'); // API changed in 0.9-beta2, let's check if you use it correctly
1705
1732
  }
1706
1733
  const c = typeof endRow === 'number' ? instance._createCellCoords(endRow, endCol) : null;
1707
1734
  return grid.populateFromArray(instance._createCellCoords(row, column), input, c, source, method);
@@ -1791,7 +1818,7 @@ export default function Core(rootContainer, userSettings) {
1791
1818
  * has visible focus highlight.
1792
1819
  *
1793
1820
  * @memberof Core#
1794
- * @function getSelectedRangeActive
1821
+ * @function getSelectedActive
1795
1822
  * @since 16.1.0
1796
1823
  * @returns {number[]|undefined} Selected range as an array of coordinates or `undefined` if there is no selection.
1797
1824
  */
@@ -2272,7 +2299,9 @@ export default function Core(rootContainer, userSettings) {
2272
2299
  instance.columnIndexMapper.fitToLength(this.getInitialColumnCount());
2273
2300
  instance.rowIndexMapper.fitToLength(this.countSourceRows());
2274
2301
  grid.adjustRowsAndCols();
2302
+ selection.markSource('updateData');
2275
2303
  selection.refresh();
2304
+ selection.markEndSource();
2276
2305
  }, {
2277
2306
  hotInstance: instance,
2278
2307
  dataMap: datamap,
@@ -2313,7 +2342,9 @@ export default function Core(rootContainer, userSettings) {
2313
2342
  metaManager.clearCellsCache();
2314
2343
  instance.initIndexMappers();
2315
2344
  grid.adjustRowsAndCols();
2345
+ selection.markSource('loadData');
2316
2346
  selection.refresh();
2347
+ selection.markEndSource();
2317
2348
  if (firstRun) {
2318
2349
  firstRun = [null, 'loadData'];
2319
2350
  }
@@ -2500,13 +2531,13 @@ export default function Core(rootContainer, userSettings) {
2500
2531
  let i;
2501
2532
  let j;
2502
2533
  if (isDefined(settings.rows)) {
2503
- throw new Error('The "rows" setting is no longer supported. Do you mean startRows, minRows or maxRows?');
2534
+ throwWithCause('The "rows" setting is no longer supported. Do you mean startRows, minRows or maxRows?');
2504
2535
  }
2505
2536
  if (isDefined(settings.cols)) {
2506
- throw new Error('The "cols" setting is no longer supported. Do you mean startCols, minCols or maxCols?');
2537
+ throwWithCause('The "cols" setting is no longer supported. Do you mean startCols, minCols or maxCols?');
2507
2538
  }
2508
2539
  if (isDefined(settings.ganttChart)) {
2509
- throw new Error('Since 8.0.0 the "ganttChart" setting is no longer supported.');
2540
+ throwWithCause('Since 8.0.0 the "ganttChart" setting is no longer supported.');
2510
2541
  }
2511
2542
  if (isDefined(settings.rowHeights) && isDefined(settings.minRowHeights)) {
2512
2543
  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.');
@@ -2535,24 +2566,56 @@ export default function Core(rootContainer, userSettings) {
2535
2566
  globalMeta[i] = settings[i];
2536
2567
  }
2537
2568
  }
2569
+ const rootContainerThemeClassName = getThemeClassName(instance.rootContainer);
2570
+ const themeNameOptionExists = hasOwnProperty(settings, 'themeName');
2571
+ const themeOptionExists = hasOwnProperty(settings, 'theme');
2572
+ if (themeNameOptionExists && themeOptionExists) {
2573
+ 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.');
2574
+ }
2575
+
2576
+ // Update the theme via the `theme` or `themeName` option as a string or undefined.
2538
2577
  if (init) {
2539
- // Use the theme defined in the settings object or set as a root container class name (in that order).
2540
- instance.useTheme(tableMeta.themeName || getThemeClassName(instance.rootContainer));
2578
+ let themeName;
2579
+ if (themeOptionExists && typeof settings.theme === 'string') {
2580
+ themeName = settings.theme;
2581
+ } else if (themeNameOptionExists && typeof settings.themeName === 'string' && settings.themeName && !themeOptionExists) {
2582
+ themeName = settings.themeName;
2583
+ tableMeta.theme = settings.themeName;
2584
+ tableMeta.themeName = undefined;
2585
+ } else if (rootContainerThemeClassName) {
2586
+ themeName = rootContainerThemeClassName;
2587
+ } else if (instance.themeManager) {
2588
+ themeName = instance.themeManager.getClassName();
2589
+ }
2590
+ instance.useTheme(themeName);
2541
2591
  } else {
2542
2592
  const currentThemeName = instance.getCurrentThemeName();
2543
- const themeNameOptionExists = hasOwnProperty(settings, 'themeName');
2544
- if (themeNameOptionExists && currentThemeName !== settings.themeName) {
2593
+
2594
+ // Use `theme` option if it's a string and differs from current theme (takes priority over `themeName`).
2595
+ if (themeOptionExists && typeof settings.theme === 'string' && currentThemeName !== settings.theme) {
2596
+ var _instance$themeManage;
2597
+ instance.useTheme(settings.theme);
2598
+ (_instance$themeManage = instance.themeManager) === null || _instance$themeManage === void 0 || _instance$themeManage.unmount();
2599
+
2600
+ // Use `themeName` option if `theme` is not provided and the name differs from current theme.
2601
+ } else if (themeNameOptionExists && !themeOptionExists && currentThemeName !== settings.themeName) {
2602
+ var _instance$themeManage2;
2603
+ tableMeta.theme = settings.themeName;
2604
+ tableMeta.themeName = undefined;
2545
2605
  instance.useTheme(settings.themeName);
2606
+ (_instance$themeManage2 = instance.themeManager) === null || _instance$themeManage2 === void 0 || _instance$themeManage2.unmount();
2607
+
2608
+ // Initialize or update the themeManager when theme is an object.
2609
+ } else if (isRootInstance(instance) && !rootContainerThemeClassName && isObject(settings.theme)) {
2610
+ if (instance.themeManager === null) {
2611
+ initializeThemeManager(settings.theme);
2612
+ instance.useTheme(instance.themeManager.getClassName());
2613
+ } else {
2614
+ instance.themeManager.update(settings.theme);
2615
+ instance.useTheme(instance.themeManager.getClassName());
2616
+ }
2546
2617
  }
2547
2618
  }
2548
- if (deprecatedWarnInstances.has(instance) && instance.stylesHandler.getThemeName() !== undefined) {
2549
- deprecatedWarnInstances.delete(instance);
2550
- }
2551
- if (isRootInstance(instance) && !deprecatedWarnInstances.has(instance) && instance.stylesHandler.isClassicTheme()) {
2552
- // eslint-disable-next-line max-len
2553
- 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.');
2554
- deprecatedWarnInstances.add(instance);
2555
- }
2556
2619
 
2557
2620
  // Load data or create data map
2558
2621
  if (settings.data === undefined && tableMeta.data === undefined) {
@@ -2598,6 +2661,12 @@ export default function Core(rootContainer, userSettings) {
2598
2661
  });
2599
2662
  }
2600
2663
  instance.runHooks('afterCellMetaReset');
2664
+
2665
+ // for the first run, we need to run the source data warnings after cell meta initialization
2666
+ // otherwise there is no access to `sourceDataValidator` function
2667
+ if (firstRun) {
2668
+ runSourceDataValidators(instance, 'init');
2669
+ }
2601
2670
  let currentHeight = instance.rootElement.style.height;
2602
2671
  if (currentHeight !== '') {
2603
2672
  currentHeight = parseInt(instance.rootElement.style.height, 10);
@@ -2624,7 +2693,7 @@ export default function Core(rootContainer, userSettings) {
2624
2693
  }
2625
2694
  } else if (height !== undefined) {
2626
2695
  instance.rootElement.style.height = isNaN(height) ? `${height}` : `${height}px`;
2627
- instance.rootElement.style.overflow = 'hidden';
2696
+ instance.rootElement.style.overflow = 'clip';
2628
2697
  }
2629
2698
  }
2630
2699
  if (typeof settings.width !== 'undefined') {
@@ -3097,8 +3166,11 @@ export default function Core(rootContainer, userSettings) {
3097
3166
  }
3098
3167
  arrayEach(input, _ref0 => {
3099
3168
  let [changeRow, changeProp, changeValue] = _ref0;
3100
- const newValue = getValueSetterValue(changeValue, getCellProperties(changeRow, changeProp));
3101
- dataSource.setAtCell(changeRow, changeProp, newValue);
3169
+ const cellMeta = getCellProperties(changeRow, changeProp);
3170
+ const newValue = getValueSetterValue(changeValue, cellMeta);
3171
+ if (runSourceDataValidator(newValue, cellMeta, source !== null && source !== void 0 ? source : 'setSourceDataAtCell')) {
3172
+ dataSource.setAtCell(changeRow, changeProp, newValue);
3173
+ }
3102
3174
  });
3103
3175
  if (isThereAnySetSourceListener) {
3104
3176
  this.runHooks('afterSetSourceDataAtCell', changesForHook, source);
@@ -3239,7 +3311,7 @@ export default function Core(rootContainer, userSettings) {
3239
3311
  cellMetaRows[_key18 - 2] = arguments[_key18];
3240
3312
  }
3241
3313
  if (cellMetaRows.length > 0 && !Array.isArray(cellMetaRows[0])) {
3242
- throw new Error('The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array.');
3314
+ throwWithCause('The 3rd argument (cellMetaRows) has to be passed as an array of cell meta objects array.');
3243
3315
  }
3244
3316
  if (deleteAmount > 0) {
3245
3317
  metaManager.removeRow(this.toPhysicalRow(visualIndex), deleteAmount);
@@ -3505,7 +3577,7 @@ export default function Core(rootContainer, userSettings) {
3505
3577
  */
3506
3578
  this.validateRows = function (rows, callback) {
3507
3579
  if (!Array.isArray(rows)) {
3508
- throw new Error('validateRows parameter `rows` must be an array');
3580
+ throwWithCause('validateRows parameter `rows` must be an array');
3509
3581
  }
3510
3582
  this._validateCells(callback, rows);
3511
3583
  };
@@ -3531,7 +3603,7 @@ export default function Core(rootContainer, userSettings) {
3531
3603
  */
3532
3604
  this.validateColumns = function (columns, callback) {
3533
3605
  if (!Array.isArray(columns)) {
3534
- throw new Error('validateColumns parameter `columns` must be an array');
3606
+ throwWithCause('validateColumns parameter `columns` must be an array');
3535
3607
  }
3536
3608
  this._validateCells(callback, undefined, columns);
3537
3609
  };
@@ -3570,7 +3642,7 @@ export default function Core(rootContainer, userSettings) {
3570
3642
  waitingForValidator.addValidatorToQueue();
3571
3643
  instance.validateCell(instance.getDataAtCell(i, j), instance.getCellMeta(i, j), result => {
3572
3644
  if (typeof result !== 'boolean') {
3573
- throw new Error('Validation error: result is not boolean');
3645
+ throwWithCause('Validation error: result is not boolean');
3574
3646
  }
3575
3647
  if (result === false) {
3576
3648
  waitingForValidator.valid = false;
@@ -4440,7 +4512,7 @@ export default function Core(rootContainer, userSettings) {
4440
4512
  */
4441
4513
  this.destroy = function () {
4442
4514
  instance._clearTimeouts();
4443
- instance._clearImmediates();
4515
+ instance._clearMicrotasks();
4444
4516
  if (instance.view) {
4445
4517
  // in case HT is destroyed before initialization has finished
4446
4518
  instance.view.destroy();
@@ -4450,8 +4522,10 @@ export default function Core(rootContainer, userSettings) {
4450
4522
  }
4451
4523
  dataSource = null;
4452
4524
  if (isRootInstance(this)) {
4525
+ var _instance$themeManage3;
4453
4526
  uninstallAccessibilityAnnouncer();
4454
4527
  this.getFocusScopeManager().destroy();
4528
+ (_instance$themeManage3 = instance.themeManager) === null || _instance$themeManage3 === void 0 || _instance$themeManage3.destroy();
4455
4529
  }
4456
4530
  this.getShortcutManager().destroy();
4457
4531
  moduleRegisterer.clear();
@@ -4514,7 +4588,7 @@ export default function Core(rootContainer, userSettings) {
4514
4588
  */
4515
4589
  function postMortem(method) {
4516
4590
  return () => {
4517
- throw new Error(`The "${method}" method cannot be called because this Handsontable instance has been destroyed`);
4591
+ throwWithCause(`The "${method}" method cannot be called because this Handsontable instance has been destroyed`);
4518
4592
  };
4519
4593
  }
4520
4594
 
@@ -4702,10 +4776,6 @@ export default function Core(rootContainer, userSettings) {
4702
4776
  * @returns {string}
4703
4777
  */
4704
4778
  this.getPluginName = function (plugin) {
4705
- // Workaround for the UndoRedo plugin which, currently doesn't follow the plugin architecture.
4706
- if (plugin === this.undoRedo) {
4707
- return this.undoRedo.constructor.PLUGIN_KEY;
4708
- }
4709
4779
  return pluginsRegistry.getId(plugin);
4710
4780
  };
4711
4781
 
@@ -4878,15 +4948,13 @@ export default function Core(rootContainer, userSettings) {
4878
4948
  const isFirstRun = !!firstRun;
4879
4949
  this.stylesHandler.useTheme(themeName);
4880
4950
  const validThemeName = this.stylesHandler.getThemeName();
4881
- if (!isFirstRun) {
4882
- instance.render();
4883
- instance.scrollViewportTo(0, 0);
4951
+ if (!isFirstRun && validThemeName) {
4884
4952
  if (getThemeClassName(this.rootContainer)) {
4885
4953
  removeClass(this.rootContainer, /ht-theme-.*/g);
4886
- if (validThemeName) {
4887
- addClass(this.rootContainer, validThemeName);
4888
- }
4954
+ addClass(this.rootContainer, validThemeName);
4889
4955
  }
4956
+ instance.render();
4957
+ instance.scrollViewportTo(0, 0);
4890
4958
  }
4891
4959
  this.runHooks('afterSetTheme', validThemeName, isFirstRun);
4892
4960
  };
@@ -4954,51 +5022,66 @@ export default function Core(rootContainer, userSettings) {
4954
5022
  clearTimeout(handler);
4955
5023
  });
4956
5024
  };
4957
- this.immediates = [];
5025
+ this.microtasks = [];
4958
5026
 
4959
5027
  /**
4960
- * Execute function execution to the next event loop cycle. Purpose of this method is to clear all known timeouts when `destroy` method is called.
5028
+ * Execute function execution to the next event loop cycle.
4961
5029
  *
4962
5030
  * @param {Function} callback Function to be delayed in execution.
4963
5031
  * @private
4964
5032
  */
4965
- this._registerImmediate = function (callback) {
4966
- this.immediates.push(setImmediate(callback));
5033
+ this._registerMicrotask = function (callback) {
5034
+ const entry = {
5035
+ cancelled: false
5036
+ };
5037
+ this.microtasks.push(entry);
5038
+ this.rootWindow.queueMicrotask(() => {
5039
+ if (!entry.cancelled) {
5040
+ callback();
5041
+ }
5042
+ });
4967
5043
  };
4968
5044
 
4969
5045
  /**
4970
- * Clears all known timeouts.
5046
+ * Clears all known microtasks (prevents pending callbacks from running).
4971
5047
  *
4972
5048
  * @private
4973
5049
  */
4974
- this._clearImmediates = function () {
4975
- arrayEach(this.immediates, handler => {
4976
- clearImmediate(handler);
5050
+ this._clearMicrotasks = function () {
5051
+ arrayEach(this.microtasks, entry => {
5052
+ entry.cancelled = true;
4977
5053
  });
5054
+ this.microtasks.length = 0;
4978
5055
  };
4979
5056
 
4980
5057
  /**
4981
- * Registers a microtask callback.
5058
+ * Gets the instance of the EditorManager.
4982
5059
  *
4983
- * @param {Function} callback Function to be delayed in execution.
4984
5060
  * @private
5061
+ * @returns {EditorManager}
4985
5062
  */
4986
- this._registerMicrotask = function (callback) {
4987
- this.rootWindow.queueMicrotask(() => {
4988
- if (!this.isDestroyed) {
4989
- callback();
4990
- }
4991
- });
5063
+ this._getEditorManager = function () {
5064
+ return editorManager;
4992
5065
  };
4993
5066
 
4994
5067
  /**
4995
- * Gets the instance of the EditorManager.
5068
+ * Gets the instance of the DataSource.
4996
5069
  *
4997
5070
  * @private
4998
- * @returns {EditorManager}
5071
+ * @returns {DataSource}
4999
5072
  */
5000
- this._getEditorManager = function () {
5001
- return editorManager;
5073
+ this._getDataSource = function () {
5074
+ return dataSource;
5075
+ };
5076
+
5077
+ /**
5078
+ * Gets the instance of the MetaManager.
5079
+ *
5080
+ * @private
5081
+ * @returns {MetaManager}
5082
+ */
5083
+ this._getMetaManager = function () {
5084
+ return metaManager;
5002
5085
  };
5003
5086
  const shortcutManager = createShortcutManager({
5004
5087
  handleEvent() {
@@ -5072,10 +5155,16 @@ export default function Core(rootContainer, userSettings) {
5072
5155
  */
5073
5156
  this.getFocusScopeManager = function () {
5074
5157
  if (!isRootInstance(instance)) {
5075
- throw new Error('The FocusScopeManager is only available for the main Handsontable instance.');
5158
+ throwWithCause('The FocusScopeManager is only available for the main Handsontable instance.');
5076
5159
  }
5077
5160
  return focusScopeManager;
5078
5161
  };
5162
+ const theme = mergedUserSettings.theme;
5163
+ const themeName = mergedUserSettings.themeName;
5164
+ const rootContainerThemeClassName = getThemeClassName(instance.rootContainer);
5165
+ if (isRootInstance(instance) && !rootContainerThemeClassName && (isObject(theme) || !theme && !themeName)) {
5166
+ initializeThemeManager(theme);
5167
+ }
5079
5168
  getPluginsNames().forEach(pluginName => {
5080
5169
  const PluginClass = getPlugin(pluginName);
5081
5170
  pluginsRegistry.addItem(pluginName, new PluginClass(this));
@@ -1,11 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- require("core-js/modules/es.error.cause.js");
5
- require("core-js/modules/es.array.push.js");
6
- require("core-js/modules/esnext.iterator.constructor.js");
7
- require("core-js/modules/esnext.iterator.filter.js");
8
- require("core-js/modules/esnext.iterator.for-each.js");
9
4
  var _SheetClip = require("../3rdparty/SheetClip");
10
5
  var _data = require("../helpers/data");
11
6
  var _object = require("../helpers/object");
@@ -13,6 +8,7 @@ var _array = require("../helpers/array");
13
8
  var _number = require("../helpers/number");
14
9
  var _mixed = require("../helpers/mixed");
15
10
  var _valueAccessors = require("../utils/valueAccessors");
11
+ var _errors = require("../helpers/errors");
16
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; }
17
13
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
18
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); }
@@ -128,7 +124,7 @@ class DataMap {
128
124
  createMap() {
129
125
  const schema = this.getSchema();
130
126
  if (typeof schema === 'undefined') {
131
- throw new Error('trying to create `columns` definition but you didn\'t provide `schema` nor `data`');
127
+ (0, _errors.throwWithCause)('trying to create `columns` definition but you didn\'t provide `schema` nor `data`');
132
128
  }
133
129
  const columns = this.tableMeta.columns;
134
130
  let i;
@@ -383,7 +379,9 @@ class DataMap {
383
379
  mode = 'start'
384
380
  } = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
385
381
  if (!this.hot.isColumnModificationAllowed()) {
386
- throw new Error('Cannot create new column. When data source in an object, ' + 'you can only have as much columns as defined in first data row, data schema or in the \'columns\' setting.' + 'If you want to be able to add new columns, you have to use array datasource.');
382
+ (0, _errors.throwWithCause)('Cannot create new column. When data source in an object, ' +
383
+ // eslint-disable-next-line max-len
384
+ 'you can only have as much columns as defined in first data row, data schema or in the \'columns\' setting.' + 'If you want to be able to add new columns, you have to use array datasource.');
387
385
  }
388
386
  const dataSource = this.dataSource;
389
387
  const maxCols = this.tableMeta.maxCols;
@@ -492,7 +490,7 @@ class DataMap {
492
490
  let amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
493
491
  let source = arguments.length > 2 ? arguments[2] : undefined;
494
492
  if (this.hot.dataType === 'object' || this.tableMeta.columns) {
495
- throw new Error('cannot remove column with object data source or columns option specified');
493
+ (0, _errors.throwWithCause)('cannot remove column with object data source or columns option specified');
496
494
  }
497
495
  let columnIndex = typeof index !== 'number' ? -amount : index;
498
496
  columnIndex = (this.hot.countCols() + columnIndex) % this.hot.countCols();