handsontable 14.6.1-next-689aaa6-20241016 → 15.0.0-next-4472a60-20241203

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 (392) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +23 -0
  2. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +23 -0
  3. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +23 -0
  4. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +23 -0
  5. package/3rdparty/walkontable/src/calculator/index.js +1 -2
  6. package/3rdparty/walkontable/src/calculator/index.mjs +2 -2
  7. package/3rdparty/walkontable/src/calculator/viewportBase.js +2 -0
  8. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +2 -0
  9. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  10. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +3 -3
  11. package/3rdparty/walkontable/src/core/_base.js +29 -23
  12. package/3rdparty/walkontable/src/core/_base.mjs +29 -23
  13. package/3rdparty/walkontable/src/core/clone.js +1 -0
  14. package/3rdparty/walkontable/src/core/clone.mjs +1 -0
  15. package/3rdparty/walkontable/src/core/core.js +2 -0
  16. package/3rdparty/walkontable/src/core/core.mjs +2 -0
  17. package/3rdparty/walkontable/src/facade/core.js +12 -6
  18. package/3rdparty/walkontable/src/facade/core.mjs +12 -6
  19. package/3rdparty/walkontable/src/index.js +0 -1
  20. package/3rdparty/walkontable/src/index.mjs +2 -2
  21. package/3rdparty/walkontable/src/overlay/_base.js +8 -1
  22. package/3rdparty/walkontable/src/overlay/_base.mjs +8 -1
  23. package/3rdparty/walkontable/src/overlay/bottom.js +5 -6
  24. package/3rdparty/walkontable/src/overlay/bottom.mjs +5 -6
  25. package/3rdparty/walkontable/src/overlay/index.js +2 -0
  26. package/3rdparty/walkontable/src/overlay/inlineStart.js +8 -7
  27. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +9 -8
  28. package/3rdparty/walkontable/src/overlay/top.js +9 -8
  29. package/3rdparty/walkontable/src/overlay/top.mjs +10 -9
  30. package/3rdparty/walkontable/src/overlays.js +10 -26
  31. package/3rdparty/walkontable/src/overlays.mjs +10 -26
  32. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  33. package/3rdparty/walkontable/src/renderer/colGroup.mjs +1 -1
  34. package/3rdparty/walkontable/src/renderer/index.js +4 -2
  35. package/3rdparty/walkontable/src/renderer/index.mjs +4 -2
  36. package/3rdparty/walkontable/src/renderer/table.js +13 -4
  37. package/3rdparty/walkontable/src/renderer/table.mjs +13 -4
  38. package/3rdparty/walkontable/src/scroll.js +46 -37
  39. package/3rdparty/walkontable/src/scroll.mjs +46 -37
  40. package/3rdparty/walkontable/src/selection/border/border.js +52 -58
  41. package/3rdparty/walkontable/src/selection/border/border.mjs +53 -59
  42. package/3rdparty/walkontable/src/selection/border/utils.js +26 -0
  43. package/3rdparty/walkontable/src/selection/border/utils.mjs +22 -0
  44. package/3rdparty/walkontable/src/selection/index.js +6 -4
  45. package/3rdparty/walkontable/src/selection/index.mjs +1 -1
  46. package/3rdparty/walkontable/src/selection/manager.js +3 -0
  47. package/3rdparty/walkontable/src/selection/manager.mjs +3 -0
  48. package/3rdparty/walkontable/src/selection/scanner.js +46 -11
  49. package/3rdparty/walkontable/src/selection/scanner.mjs +46 -11
  50. package/3rdparty/walkontable/src/settings.js +8 -9
  51. package/3rdparty/walkontable/src/settings.mjs +8 -9
  52. package/3rdparty/walkontable/src/table/master.js +1 -1
  53. package/3rdparty/walkontable/src/table/master.mjs +2 -2
  54. package/3rdparty/walkontable/src/table.js +25 -36
  55. package/3rdparty/walkontable/src/table.mjs +25 -36
  56. package/3rdparty/walkontable/src/types.js +1 -0
  57. package/3rdparty/walkontable/src/types.mjs +1 -0
  58. package/3rdparty/walkontable/src/utils/column.js +1 -43
  59. package/3rdparty/walkontable/src/utils/column.mjs +1 -43
  60. package/3rdparty/walkontable/src/utils/stylesHandler.js +295 -0
  61. package/3rdparty/walkontable/src/utils/stylesHandler.mjs +291 -0
  62. package/3rdparty/walkontable/src/viewport.js +94 -91
  63. package/3rdparty/walkontable/src/viewport.mjs +95 -92
  64. package/CHANGELOG.md +36 -0
  65. package/README.md +1 -1
  66. package/base.js +4 -4
  67. package/base.mjs +3 -3
  68. package/core/focusCatcher/focusDetector.js +1 -0
  69. package/core/focusCatcher/focusDetector.mjs +1 -0
  70. package/core/hooks/bucket.js +184 -0
  71. package/core/hooks/bucket.mjs +180 -0
  72. package/{pluginHooks.mjs → core/hooks/constants.js} +38 -486
  73. package/{pluginHooks.js → core/hooks/constants.mjs} +34 -489
  74. package/{pluginHooks.d.ts → core/hooks/index.d.ts} +22 -25
  75. package/core/hooks/index.js +385 -0
  76. package/core/hooks/index.mjs +381 -0
  77. package/core/index.js +2 -0
  78. package/core.d.ts +5 -3
  79. package/core.js +77 -35
  80. package/core.mjs +69 -27
  81. package/dataMap/dataMap.js +3 -0
  82. package/dataMap/dataMap.mjs +3 -0
  83. package/dataMap/dataSource.js +2 -0
  84. package/dataMap/dataSource.mjs +2 -0
  85. package/dataMap/metaManager/index.js +2 -0
  86. package/dataMap/metaManager/index.mjs +2 -0
  87. package/dataMap/metaManager/metaSchema.js +91 -5
  88. package/dataMap/metaManager/metaSchema.mjs +91 -5
  89. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -3
  90. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  91. package/dataMap/metaManager/mods/extendMetaProperties.js +2 -0
  92. package/dataMap/metaManager/mods/extendMetaProperties.mjs +2 -0
  93. package/dist/handsontable.css +84 -72
  94. package/dist/handsontable.full.css +317 -304
  95. package/dist/handsontable.full.js +14826 -7294
  96. package/dist/handsontable.full.min.css +15 -10
  97. package/dist/handsontable.full.min.js +262 -69
  98. package/dist/handsontable.js +7826 -5552
  99. package/dist/handsontable.min.css +10 -6
  100. package/dist/handsontable.min.js +33 -33
  101. package/dist/languages/all.js +1 -1
  102. package/dist/languages/ar-AR.js +1 -1
  103. package/dist/languages/cs-CZ.js +1 -1
  104. package/dist/languages/de-CH.js +1 -1
  105. package/dist/languages/de-DE.js +1 -1
  106. package/dist/languages/en-US.js +1 -1
  107. package/dist/languages/es-MX.js +1 -1
  108. package/dist/languages/fr-FR.js +1 -1
  109. package/dist/languages/hr-HR.js +1 -1
  110. package/dist/languages/it-IT.js +1 -1
  111. package/dist/languages/ja-JP.js +1 -1
  112. package/dist/languages/ko-KR.js +1 -1
  113. package/dist/languages/lv-LV.js +1 -1
  114. package/dist/languages/nb-NO.js +1 -1
  115. package/dist/languages/nl-NL.js +1 -1
  116. package/dist/languages/pl-PL.js +1 -1
  117. package/dist/languages/pt-BR.js +1 -1
  118. package/dist/languages/ru-RU.js +1 -1
  119. package/dist/languages/sr-SP.js +1 -1
  120. package/dist/languages/zh-CN.js +1 -1
  121. package/dist/languages/zh-TW.js +1 -1
  122. package/editorManager.js +2 -2
  123. package/editorManager.mjs +2 -2
  124. package/editors/autocompleteEditor/autocompleteEditor.js +34 -16
  125. package/editors/autocompleteEditor/autocompleteEditor.mjs +34 -16
  126. package/editors/baseEditor/baseEditor.js +25 -18
  127. package/editors/baseEditor/baseEditor.mjs +26 -19
  128. package/editors/dateEditor/dateEditor.js +9 -0
  129. package/editors/dateEditor/dateEditor.mjs +10 -1
  130. package/editors/dropdownEditor/dropdownEditor.js +4 -3
  131. package/editors/dropdownEditor/dropdownEditor.mjs +3 -1
  132. package/editors/handsontableEditor/handsontableEditor.js +36 -2
  133. package/editors/handsontableEditor/handsontableEditor.mjs +36 -2
  134. package/editors/passwordEditor/passwordEditor.js +18 -0
  135. package/editors/passwordEditor/passwordEditor.mjs +18 -0
  136. package/editors/registry.js +2 -2
  137. package/editors/registry.mjs +1 -1
  138. package/editors/selectEditor/selectEditor.js +20 -9
  139. package/editors/selectEditor/selectEditor.mjs +20 -9
  140. package/editors/textEditor/textEditor.js +5 -12
  141. package/editors/textEditor/textEditor.mjs +6 -13
  142. package/focusManager.js +5 -7
  143. package/focusManager.mjs +5 -7
  144. package/helpers/array.js +2 -0
  145. package/helpers/array.mjs +2 -0
  146. package/helpers/data.js +3 -0
  147. package/helpers/data.mjs +3 -0
  148. package/helpers/dom/element.js +39 -18
  149. package/helpers/dom/element.mjs +38 -17
  150. package/helpers/mixed.js +3 -3
  151. package/helpers/mixed.mjs +3 -3
  152. package/helpers/moves.js +3 -0
  153. package/helpers/moves.mjs +3 -0
  154. package/helpers/number.js +1 -0
  155. package/helpers/number.mjs +1 -0
  156. package/helpers/object.js +2 -0
  157. package/helpers/object.mjs +2 -0
  158. package/helpers/themes.js +17 -0
  159. package/helpers/themes.mjs +13 -0
  160. package/i18n/index.js +2 -0
  161. package/i18n/languages/index.d.ts +8 -0
  162. package/i18n/languages/ja-JP.d.ts +1 -1
  163. package/i18n/phraseFormatters/substituteVariables.js +1 -0
  164. package/i18n/phraseFormatters/substituteVariables.mjs +1 -0
  165. package/index.d.ts +9 -1
  166. package/languages/all.js +1 -1
  167. package/languages/ar-AR.js +1 -1
  168. package/languages/cs-CZ.js +1 -1
  169. package/languages/de-CH.js +1 -1
  170. package/languages/de-DE.js +1 -1
  171. package/languages/en-US.js +1 -1
  172. package/languages/es-MX.js +1 -1
  173. package/languages/fr-FR.js +1 -1
  174. package/languages/hr-HR.js +1 -1
  175. package/languages/index.js +1 -1
  176. package/languages/it-IT.js +1 -1
  177. package/languages/ja-JP.js +1 -1
  178. package/languages/ko-KR.js +1 -1
  179. package/languages/lv-LV.js +1 -1
  180. package/languages/nb-NO.js +1 -1
  181. package/languages/nl-NL.js +1 -1
  182. package/languages/pl-PL.js +1 -1
  183. package/languages/pt-BR.js +1 -1
  184. package/languages/ru-RU.js +1 -1
  185. package/languages/sr-SP.js +1 -1
  186. package/languages/zh-CN.js +1 -1
  187. package/languages/zh-TW.js +1 -1
  188. package/package.json +22 -7
  189. package/plugins/autoColumnSize/autoColumnSize.js +22 -27
  190. package/plugins/autoColumnSize/autoColumnSize.mjs +22 -27
  191. package/plugins/autoRowSize/autoRowSize.js +20 -22
  192. package/plugins/autoRowSize/autoRowSize.mjs +21 -23
  193. package/plugins/autofill/autofill.js +4 -5
  194. package/plugins/autofill/autofill.mjs +1 -1
  195. package/plugins/base/base.d.ts +1 -1
  196. package/plugins/base/base.js +41 -0
  197. package/plugins/base/base.mjs +42 -1
  198. package/plugins/base/index.js +2 -1
  199. package/plugins/base/index.mjs +1 -1
  200. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -5
  201. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -5
  202. package/plugins/columnSorting/columnSorting.js +5 -4
  203. package/plugins/columnSorting/columnSorting.mjs +3 -1
  204. package/plugins/columnSorting/columnStatesManager.js +1 -0
  205. package/plugins/columnSorting/columnStatesManager.mjs +1 -0
  206. package/plugins/columnSorting/utils.js +3 -0
  207. package/plugins/columnSorting/utils.mjs +3 -0
  208. package/plugins/columnSummary/endpoints.js +3 -0
  209. package/plugins/columnSummary/endpoints.mjs +3 -0
  210. package/plugins/comments/commentEditor.js +9 -0
  211. package/plugins/comments/commentEditor.mjs +9 -0
  212. package/plugins/comments/comments.js +24 -18
  213. package/plugins/comments/comments.mjs +26 -20
  214. package/plugins/comments/editorResizeObserver.js +2 -0
  215. package/plugins/comments/editorResizeObserver.mjs +2 -0
  216. package/plugins/contextMenu/contextMenu.d.ts +2 -1
  217. package/plugins/contextMenu/contextMenu.js +6 -7
  218. package/plugins/contextMenu/contextMenu.mjs +1 -1
  219. package/plugins/contextMenu/menu/index.js +2 -0
  220. package/plugins/contextMenu/menu/menu.js +10 -5
  221. package/plugins/contextMenu/menu/menu.mjs +11 -6
  222. package/plugins/contextMenu/menu/positioner.js +4 -2
  223. package/plugins/contextMenu/menu/positioner.mjs +4 -2
  224. package/plugins/contextMenu/menu/shortcuts.js +3 -1
  225. package/plugins/contextMenu/menu/shortcuts.mjs +3 -1
  226. package/plugins/contextMenu/predefinedItems/alignment.js +7 -84
  227. package/plugins/contextMenu/predefinedItems/alignment.mjs +8 -85
  228. package/plugins/contextMenu/utils.js +0 -10
  229. package/plugins/contextMenu/utils.mjs +0 -9
  230. package/plugins/copyPaste/copyPaste.d.ts +1 -0
  231. package/plugins/copyPaste/copyPaste.js +32 -23
  232. package/plugins/copyPaste/copyPaste.mjs +24 -15
  233. package/plugins/customBorders/utils.js +2 -0
  234. package/plugins/customBorders/utils.mjs +2 -0
  235. package/plugins/dropdownMenu/dropdownMenu.d.ts +2 -1
  236. package/plugins/dropdownMenu/dropdownMenu.js +6 -7
  237. package/plugins/dropdownMenu/dropdownMenu.mjs +1 -1
  238. package/plugins/exportFile/types/csv.js +1 -0
  239. package/plugins/exportFile/types/csv.mjs +1 -0
  240. package/plugins/filters/component/condition.js +2 -0
  241. package/plugins/filters/component/condition.mjs +2 -0
  242. package/plugins/filters/component/operators.js +2 -0
  243. package/plugins/filters/component/operators.mjs +2 -0
  244. package/plugins/filters/component/value.js +3 -0
  245. package/plugins/filters/component/value.mjs +3 -0
  246. package/plugins/filters/conditionCollection.js +3 -0
  247. package/plugins/filters/conditionCollection.mjs +3 -0
  248. package/plugins/filters/conditionUpdateObserver.js +2 -0
  249. package/plugins/filters/conditionUpdateObserver.mjs +2 -0
  250. package/plugins/filters/filters.js +43 -13
  251. package/plugins/filters/filters.mjs +43 -13
  252. package/plugins/filters/logicalOperations/conjunction.js +2 -0
  253. package/plugins/filters/logicalOperations/conjunction.mjs +2 -0
  254. package/plugins/filters/logicalOperations/disjunction.js +2 -0
  255. package/plugins/filters/logicalOperations/disjunction.mjs +2 -0
  256. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.js +2 -0
  257. package/plugins/filters/logicalOperations/disjunctionWithExtraCondition.mjs +2 -0
  258. package/plugins/filters/menu/focusController.js +38 -14
  259. package/plugins/filters/menu/focusController.mjs +38 -14
  260. package/plugins/filters/ui/multipleSelect.js +10 -0
  261. package/plugins/filters/ui/multipleSelect.mjs +10 -0
  262. package/plugins/formulas/engine/register.js +3 -0
  263. package/plugins/formulas/engine/register.mjs +3 -0
  264. package/plugins/formulas/engine/settings.js +3 -0
  265. package/plugins/formulas/engine/settings.mjs +3 -0
  266. package/plugins/formulas/formulas.js +12 -7
  267. package/plugins/formulas/formulas.mjs +6 -1
  268. package/plugins/formulas/indexSyncer/axisSyncer.js +3 -0
  269. package/plugins/formulas/indexSyncer/axisSyncer.mjs +3 -0
  270. package/plugins/hiddenColumns/contextMenuItem/showColumn.js +2 -0
  271. package/plugins/hiddenColumns/contextMenuItem/showColumn.mjs +2 -0
  272. package/plugins/hiddenColumns/hiddenColumns.js +22 -30
  273. package/plugins/hiddenColumns/hiddenColumns.mjs +18 -26
  274. package/plugins/hiddenRows/contextMenuItem/showRow.js +2 -0
  275. package/plugins/hiddenRows/contextMenuItem/showRow.mjs +2 -0
  276. package/plugins/hiddenRows/hiddenRows.js +21 -29
  277. package/plugins/hiddenRows/hiddenRows.mjs +17 -25
  278. package/plugins/index.d.ts +3 -0
  279. package/plugins/index.js +3 -0
  280. package/plugins/index.mjs +3 -1
  281. package/plugins/manualColumnFreeze/manualColumnFreeze.js +7 -5
  282. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -1
  283. package/plugins/manualColumnMove/manualColumnMove.js +6 -6
  284. package/plugins/manualColumnMove/manualColumnMove.mjs +4 -4
  285. package/plugins/manualColumnResize/manualColumnResize.js +26 -12
  286. package/plugins/manualColumnResize/manualColumnResize.mjs +26 -12
  287. package/plugins/manualRowMove/manualRowMove.js +8 -6
  288. package/plugins/manualRowMove/manualRowMove.mjs +6 -4
  289. package/plugins/manualRowResize/manualRowResize.js +3 -2
  290. package/plugins/manualRowResize/manualRowResize.mjs +4 -3
  291. package/plugins/mergeCells/cellsCollection.js +19 -3
  292. package/plugins/mergeCells/cellsCollection.mjs +20 -4
  293. package/plugins/mergeCells/mergeCells.d.ts +6 -2
  294. package/plugins/mergeCells/mergeCells.js +84 -56
  295. package/plugins/mergeCells/mergeCells.mjs +82 -54
  296. package/plugins/mergeCells/renderer.js +13 -3
  297. package/plugins/mergeCells/renderer.mjs +13 -3
  298. package/plugins/multiColumnSorting/domHelpers.js +2 -0
  299. package/plugins/multiColumnSorting/domHelpers.mjs +2 -0
  300. package/plugins/nestedHeaders/nestedHeaders.js +63 -16
  301. package/plugins/nestedHeaders/nestedHeaders.mjs +63 -16
  302. package/plugins/nestedHeaders/stateManager/index.js +1 -0
  303. package/plugins/nestedHeaders/stateManager/index.mjs +1 -0
  304. package/plugins/nestedRows/nestedRows.js +3 -0
  305. package/plugins/nestedRows/nestedRows.mjs +3 -0
  306. package/plugins/nestedRows/ui/headers.js +7 -1
  307. package/plugins/nestedRows/ui/headers.mjs +7 -1
  308. package/plugins/nestedRows/utils/rowMoveController.js +4 -0
  309. package/plugins/nestedRows/utils/rowMoveController.mjs +4 -0
  310. package/plugins/persistentState/persistentState.js +4 -4
  311. package/plugins/persistentState/persistentState.mjs +1 -1
  312. package/plugins/stretchColumns/calculator.js +162 -0
  313. package/plugins/stretchColumns/calculator.mjs +158 -0
  314. package/plugins/stretchColumns/index.d.ts +1 -0
  315. package/plugins/stretchColumns/index.js +7 -0
  316. package/plugins/stretchColumns/index.mjs +1 -0
  317. package/plugins/stretchColumns/strategies/_base.js +85 -0
  318. package/plugins/stretchColumns/strategies/_base.mjs +81 -0
  319. package/plugins/stretchColumns/strategies/all.js +71 -0
  320. package/plugins/stretchColumns/strategies/all.mjs +67 -0
  321. package/plugins/stretchColumns/strategies/last.js +79 -0
  322. package/plugins/stretchColumns/strategies/last.mjs +75 -0
  323. package/plugins/stretchColumns/stretchColumns.d.ts +11 -0
  324. package/plugins/stretchColumns/stretchColumns.js +222 -0
  325. package/plugins/stretchColumns/stretchColumns.mjs +218 -0
  326. package/plugins/trimRows/trimRows.js +2 -0
  327. package/plugins/trimRows/trimRows.mjs +2 -0
  328. package/plugins/undoRedo/undoRedo.js +9 -5
  329. package/plugins/undoRedo/undoRedo.mjs +8 -3
  330. package/renderers/checkboxRenderer/checkboxRenderer.js +19 -8
  331. package/renderers/checkboxRenderer/checkboxRenderer.mjs +18 -7
  332. package/selection/index.js +2 -0
  333. package/selection/range.js +2 -0
  334. package/selection/range.mjs +2 -0
  335. package/selection/selection.js +7 -2
  336. package/selection/selection.mjs +7 -2
  337. package/selection/utils.js +2 -0
  338. package/selection/utils.mjs +2 -0
  339. package/settings.d.ts +4 -1
  340. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.js +1 -1
  341. package/shortcutContexts/commands/extendCellsSelection/downByViewportHeight.mjs +1 -1
  342. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.js +1 -1
  343. package/shortcutContexts/commands/extendCellsSelection/upByViewportHeight.mjs +1 -1
  344. package/shortcutContexts/commands/index.js +2 -0
  345. package/shortcutContexts/commands/index.mjs +2 -0
  346. package/shortcutContexts/commands/scrollToFocusedCell.js +4 -4
  347. package/shortcutContexts/commands/scrollToFocusedCell.mjs +4 -4
  348. package/shortcutContexts/index.js +2 -0
  349. package/shortcutContexts/index.mjs +2 -0
  350. package/shortcuts/context.js +3 -0
  351. package/shortcuts/context.mjs +3 -0
  352. package/shortcuts/recorder.js +3 -3
  353. package/shortcuts/recorder.mjs +3 -3
  354. package/shortcuts/utils.js +1 -0
  355. package/shortcuts/utils.mjs +1 -0
  356. package/styles/handsontable.css +2307 -0
  357. package/styles/handsontable.min.css +30 -0
  358. package/styles/ht-theme-horizon.css +607 -0
  359. package/styles/ht-theme-horizon.min.css +30 -0
  360. package/styles/ht-theme-main.css +613 -0
  361. package/styles/ht-theme-main.min.css +30 -0
  362. package/tableView.js +205 -33
  363. package/tableView.mjs +206 -34
  364. package/translations/changesObservable/observable.js +2 -0
  365. package/translations/changesObservable/observable.mjs +2 -0
  366. package/translations/index.js +2 -0
  367. package/translations/indexMapper.js +4 -0
  368. package/translations/indexMapper.mjs +4 -0
  369. package/translations/mapCollections/index.js +2 -0
  370. package/translations/mapCollections/mapCollection.js +2 -0
  371. package/translations/mapCollections/mapCollection.mjs +2 -0
  372. package/translations/maps/index.js +2 -0
  373. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -0
  374. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -0
  375. package/translations/maps/utils/actionsOnIndexes.js +2 -0
  376. package/translations/maps/utils/actionsOnIndexes.mjs +2 -0
  377. package/translations/maps/utils/physicallyIndexed.js +1 -0
  378. package/translations/maps/utils/physicallyIndexed.mjs +1 -0
  379. package/utils/autoResize.js +11 -3
  380. package/utils/autoResize.mjs +11 -3
  381. package/utils/dataStructures/priorityMap.js +1 -0
  382. package/utils/dataStructures/priorityMap.mjs +1 -0
  383. package/utils/dataStructures/uniqueMap.js +2 -0
  384. package/utils/dataStructures/uniqueMap.mjs +2 -0
  385. package/utils/ghostTable.js +7 -3
  386. package/utils/ghostTable.mjs +7 -3
  387. package/utils/parseTable.js +4 -0
  388. package/utils/parseTable.mjs +4 -0
  389. package/3rdparty/walkontable/src/selection/border/constants.js +0 -15
  390. package/3rdparty/walkontable/src/selection/border/constants.mjs +0 -12
  391. package/3rdparty/walkontable/src/utils/columnStretching.js +0 -197
  392. package/3rdparty/walkontable/src/utils/columnStretching.mjs +0 -193
@@ -0,0 +1,218 @@
1
+ import "core-js/modules/es.error.cause.js";
2
+ import "core-js/modules/esnext.iterator.constructor.js";
3
+ import "core-js/modules/esnext.iterator.for-each.js";
4
+ function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
5
+ function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
6
+ function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
7
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
8
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
9
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
10
+ import { BasePlugin } from "../base/index.mjs";
11
+ import { StretchCalculator } from "./calculator.mjs";
12
+ export const PLUGIN_KEY = 'stretchColumns';
13
+ export const PLUGIN_PRIORITY = 155;
14
+
15
+ /* eslint-disable jsdoc/require-description-complete-sentence */
16
+ /**
17
+ * @plugin StretchColumns
18
+ * @class StretchColumns
19
+ *
20
+ * @description
21
+ * This plugin allows to set column widths based on their widest cells.
22
+ *
23
+ * By default, the plugin is declared as `'none'`, which makes it disabled (same as if it was declared as `false`).
24
+ *
25
+ * The plugin determines what happens when the declared grid width is different from the calculated sum of all column widths.
26
+ *
27
+ * ```js
28
+ * // fit the grid to the container, by stretching only the last column
29
+ * stretchH: 'last',
30
+ *
31
+ * // fit the grid to the container, by stretching all columns evenly
32
+ * stretchH: 'all',
33
+ * ```
34
+ *
35
+ * To configure this plugin see {@link Options#stretchH}.
36
+ *
37
+ * @example
38
+ *
39
+ * ::: only-for javascript
40
+ * ```js
41
+ * const hot = new Handsontable(document.getElementById('example'), {
42
+ * data: getData(),
43
+ * stretchH: 'all',
44
+ * });
45
+ * ```
46
+ * :::
47
+ *
48
+ * ::: only-for react
49
+ * ```jsx
50
+ * const hotRef = useRef(null);
51
+ *
52
+ * ...
53
+ *
54
+ * // First, let's construct Handsontable
55
+ * <HotTable
56
+ * ref={hotRef}
57
+ * data={getData()}
58
+ * stretchH={'all'}
59
+ * />
60
+ * ```
61
+ * :::
62
+ */
63
+ /* eslint-enable jsdoc/require-description-complete-sentence */
64
+ var _stretchCalculator = /*#__PURE__*/new WeakMap();
65
+ var _previousTableWidth = /*#__PURE__*/new WeakMap();
66
+ var _resizeObserver = /*#__PURE__*/new WeakMap();
67
+ var _StretchColumns_brand = /*#__PURE__*/new WeakSet();
68
+ export class StretchColumns extends BasePlugin {
69
+ constructor() {
70
+ super(...arguments);
71
+ /**
72
+ * Hook that modifies the column width - applies by the stretching logic.
73
+ *
74
+ * @param {number} width The column width.
75
+ * @param {number} column The visual column index.
76
+ * @param {string} source The source of the modification.
77
+ * @returns {number}
78
+ */
79
+ _classPrivateMethodInitSpec(this, _StretchColumns_brand);
80
+ /**
81
+ * The stretch calculator.
82
+ *
83
+ * @type {StretchCalculator}
84
+ */
85
+ _classPrivateFieldInitSpec(this, _stretchCalculator, new StretchCalculator(this.hot));
86
+ /**
87
+ * The previous width of the root element. Helps to determine if the width has changed.
88
+ *
89
+ * @type {number | null}
90
+ */
91
+ _classPrivateFieldInitSpec(this, _previousTableWidth, null);
92
+ /**
93
+ * It observes the root element to detect changes in its width, and if detected, then it triggers
94
+ * the table dimension calculations. In a situation where the browser's vertical scrollbar
95
+ * appears - caused by some external UI element, the observer triggers the render.
96
+ *
97
+ * @type {ResizeObserver}
98
+ */
99
+ _classPrivateFieldInitSpec(this, _resizeObserver, new ResizeObserver(entries => {
100
+ requestAnimationFrame(() => {
101
+ var _this$hot;
102
+ if (!((_this$hot = this.hot) !== null && _this$hot !== void 0 && _this$hot.view.isHorizontallyScrollableByWindow())) {
103
+ return;
104
+ }
105
+ entries.forEach(_ref => {
106
+ let {
107
+ contentRect
108
+ } = _ref;
109
+ if (_classPrivateFieldGet(_previousTableWidth, this) !== null && _classPrivateFieldGet(_previousTableWidth, this) !== contentRect.width) {
110
+ this.hot.refreshDimensions();
111
+ this.hot.view.adjustElementsSize();
112
+ }
113
+ _classPrivateFieldSet(_previousTableWidth, this, contentRect.width);
114
+ });
115
+ });
116
+ }));
117
+ }
118
+ static get PLUGIN_KEY() {
119
+ return PLUGIN_KEY;
120
+ }
121
+ static get PLUGIN_PRIORITY() {
122
+ return PLUGIN_PRIORITY;
123
+ }
124
+ static get SETTING_KEYS() {
125
+ return true;
126
+ }
127
+ /**
128
+ * Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
129
+ * hook and if it returns `true` then the {@link #enablePlugin} method is called.
130
+ *
131
+ * @returns {boolean}
132
+ */
133
+ isEnabled() {
134
+ return ['all', 'last'].includes(this.hot.getSettings().stretchH);
135
+ }
136
+
137
+ /**
138
+ * Enables the plugin functionality for this Handsontable instance.
139
+ */
140
+ enablePlugin() {
141
+ var _this = this;
142
+ if (this.enabled) {
143
+ return;
144
+ }
145
+ _classPrivateFieldGet(_stretchCalculator, this).useStrategy(this.hot.getSettings().stretchH);
146
+ _classPrivateFieldGet(_resizeObserver, this).observe(this.hot.rootElement);
147
+ this.addHook('beforeRender', function () {
148
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
149
+ args[_key] = arguments[_key];
150
+ }
151
+ return _assertClassBrand(_StretchColumns_brand, _this, _onBeforeRender).call(_this, ...args);
152
+ });
153
+ this.addHook('modifyColWidth', function () {
154
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
155
+ args[_key2] = arguments[_key2];
156
+ }
157
+ return _assertClassBrand(_StretchColumns_brand, _this, _onModifyColWidth).call(_this, ...args);
158
+ }, 10);
159
+ super.enablePlugin();
160
+ }
161
+
162
+ /**
163
+ * Updates the plugin's state. This method is executed when {@link Core#updateSettings} is invoked.
164
+ */
165
+ updatePlugin() {
166
+ _classPrivateFieldGet(_stretchCalculator, this).useStrategy(this.hot.getSettings().stretchH);
167
+ super.updatePlugin();
168
+ }
169
+
170
+ /**
171
+ * Disables the plugin functionality for this Handsontable instance.
172
+ */
173
+ disablePlugin() {
174
+ super.disablePlugin();
175
+ _classPrivateFieldGet(_resizeObserver, this).unobserve(this.hot.rootElement);
176
+ }
177
+
178
+ /**
179
+ * Gets the calculated column width based on the stretching
180
+ * strategy defined by {@link Options#stretchH} option.
181
+ *
182
+ * @param {number} columnVisualIndex The visual index of the column.
183
+ * @returns {number | null}
184
+ */
185
+ getColumnWidth(columnVisualIndex) {
186
+ return _classPrivateFieldGet(_stretchCalculator, this).getStretchedWidth(columnVisualIndex);
187
+ }
188
+ /**
189
+ * Destroys the plugin instance.
190
+ */
191
+ destroy() {
192
+ _classPrivateFieldGet(_resizeObserver, this).disconnect();
193
+ _classPrivateFieldSet(_resizeObserver, this, null);
194
+ _classPrivateFieldSet(_stretchCalculator, this, null);
195
+ super.destroy();
196
+ }
197
+ }
198
+ function _onModifyColWidth(width, column, source) {
199
+ if (source === this.pluginName) {
200
+ return;
201
+ }
202
+ const newWidth = this.getColumnWidth(column);
203
+ if (typeof newWidth === 'number') {
204
+ return newWidth;
205
+ }
206
+ return width;
207
+ }
208
+ /**
209
+ * On each before render the plugin recalculates the column widths
210
+ * based on the chosen stretching strategy.
211
+ *
212
+ * @param {boolean} fullRender If `true` then the full render is in progress.
213
+ */
214
+ function _onBeforeRender(fullRender) {
215
+ if (fullRender) {
216
+ _classPrivateFieldGet(_stretchCalculator, this).refreshStretching();
217
+ }
218
+ }
@@ -10,6 +10,8 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
10
10
  require("core-js/modules/es.set.is-superset-of.v2.js");
11
11
  require("core-js/modules/es.set.symmetric-difference.v2.js");
12
12
  require("core-js/modules/es.set.union.v2.js");
13
+ require("core-js/modules/esnext.iterator.constructor.js");
14
+ require("core-js/modules/esnext.iterator.every.js");
13
15
  var _base = require("../base");
14
16
  var _translations = require("../../translations");
15
17
  var _array = require("../../helpers/array");
@@ -7,6 +7,8 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
7
7
  import "core-js/modules/es.set.is-superset-of.v2.js";
8
8
  import "core-js/modules/es.set.symmetric-difference.v2.js";
9
9
  import "core-js/modules/es.set.union.v2.js";
10
+ import "core-js/modules/esnext.iterator.constructor.js";
11
+ import "core-js/modules/esnext.iterator.every.js";
10
12
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
11
13
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
12
14
  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; }
@@ -3,13 +3,17 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.array.push.js");
5
5
  require("core-js/modules/es.object.from-entries.js");
6
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
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.find.js");
9
+ require("core-js/modules/esnext.iterator.for-each.js");
10
+ require("core-js/modules/esnext.iterator.reduce.js");
11
+ var _hooks = require("../../core/hooks");
7
12
  var _array = require("../../helpers/array");
8
13
  var _number = require("../../helpers/number");
9
14
  var _object = require("../../helpers/object");
10
15
  var _utils = require("../contextMenu/utils");
11
16
  var _moves = require("../../helpers/moves");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
17
  const SHORTCUTS_GROUP = 'undoRedo';
14
18
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'undoRedo';
15
19
 
@@ -401,8 +405,8 @@ UndoRedo.ChangeAction.prototype.undo = function (instance, undoneCallback) {
401
405
  if (selectedLast !== undefined) {
402
406
  const [changedRow, changedColumn] = data[0];
403
407
  const [selectedRow, selectedColumn] = selectedLast;
404
- const firstFullyVisibleRow = instance.view.getFirstFullyVisibleRow();
405
- const firstFullyVisibleColumn = instance.view.getFirstFullyVisibleColumn();
408
+ const firstFullyVisibleRow = instance.getFirstFullyVisibleRow();
409
+ const firstFullyVisibleColumn = instance.getFirstFullyVisibleColumn();
406
410
  const isInVerticalViewPort = changedRow >= firstFullyVisibleRow;
407
411
  const isInHorizontalViewPort = changedColumn >= firstFullyVisibleColumn;
408
412
  const isInViewport = isInVerticalViewPort && isInHorizontalViewPort;
@@ -972,7 +976,7 @@ function removeExposedUndoRedoMethods(instance) {
972
976
  delete instance.isRedoAvailable;
973
977
  delete instance.clearUndo;
974
978
  }
975
- const hook = _pluginHooks.default.getSingleton();
979
+ const hook = _hooks.Hooks.getSingleton();
976
980
  hook.add('afterUpdateSettings', function () {
977
981
  var _this$getPlugin;
978
982
  (_this$getPlugin = this.getPlugin('undoRedo')) === null || _this$getPlugin === void 0 || _this$getPlugin.init();
@@ -1,6 +1,11 @@
1
1
  import "core-js/modules/es.array.push.js";
2
2
  import "core-js/modules/es.object.from-entries.js";
3
- import Hooks from "../../pluginHooks.mjs";
3
+ import "core-js/modules/esnext.iterator.constructor.js";
4
+ import "core-js/modules/esnext.iterator.filter.js";
5
+ import "core-js/modules/esnext.iterator.find.js";
6
+ import "core-js/modules/esnext.iterator.for-each.js";
7
+ import "core-js/modules/esnext.iterator.reduce.js";
8
+ import { Hooks } from "../../core/hooks/index.mjs";
4
9
  import { arrayMap, arrayEach } from "../../helpers/array.mjs";
5
10
  import { rangeEach } from "../../helpers/number.mjs";
6
11
  import { inherit, deepClone } from "../../helpers/object.mjs";
@@ -397,8 +402,8 @@ UndoRedo.ChangeAction.prototype.undo = function (instance, undoneCallback) {
397
402
  if (selectedLast !== undefined) {
398
403
  const [changedRow, changedColumn] = data[0];
399
404
  const [selectedRow, selectedColumn] = selectedLast;
400
- const firstFullyVisibleRow = instance.view.getFirstFullyVisibleRow();
401
- const firstFullyVisibleColumn = instance.view.getFirstFullyVisibleColumn();
405
+ const firstFullyVisibleRow = instance.getFirstFullyVisibleRow();
406
+ const firstFullyVisibleColumn = instance.getFirstFullyVisibleColumn();
402
407
  const isInVerticalViewPort = changedRow >= firstFullyVisibleRow;
403
408
  const isInHorizontalViewPort = changedColumn >= firstFullyVisibleColumn;
404
409
  const isInViewport = isInVerticalViewPort && isInHorizontalViewPort;
@@ -3,12 +3,15 @@
3
3
  exports.__esModule = true;
4
4
  exports.checkboxRenderer = checkboxRenderer;
5
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.every.js");
8
+ require("core-js/modules/esnext.iterator.map.js");
6
9
  var _baseRenderer = require("../baseRenderer");
7
10
  var _eventManager = _interopRequireDefault(require("../../eventManager"));
8
11
  var _element = require("../../helpers/dom/element");
9
12
  var _mixed = require("../../helpers/mixed");
10
13
  var _shortcutContexts = require("../../shortcutContexts");
11
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
14
+ var _hooks = require("../../core/hooks");
12
15
  var _a11y = require("../../helpers/a11y");
13
16
  var _constants = require("../../i18n/constants");
14
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -19,7 +22,7 @@ const ATTR_ROW = 'data-row';
19
22
  const ATTR_COLUMN = 'data-col';
20
23
  const SHORTCUTS_GROUP = 'checkboxRenderer';
21
24
  const RENDERER_TYPE = exports.RENDERER_TYPE = 'checkbox';
22
- _pluginHooks.default.getSingleton().add('modifyAutoColumnSizeSeed', function (bundleSeed, cellMeta, cellValue) {
25
+ _hooks.Hooks.getSingleton().add('modifyAutoColumnSizeSeed', function (bundleSeed, cellMeta, cellValue) {
23
26
  const {
24
27
  label,
25
28
  type,
@@ -161,7 +164,7 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
161
164
  },
162
165
  runOnlyIf: () => {
163
166
  const range = hotInstance.getSelectedRangeLast();
164
- return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.isSingle()) && range.highlight.isCell();
167
+ return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.highlight.isCell()) && !hotInstance.selection.isMultiple();
165
168
  }
166
169
  }, {
167
170
  keys: [['delete'], ['backspace']],
@@ -204,6 +207,11 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
204
207
  for (let visualRow = startRow; visualRow <= endRow; visualRow += 1) {
205
208
  for (let visualColumn = startColumn; visualColumn <= endColumn; visualColumn += 1) {
206
209
  const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
210
+
211
+ /* eslint-disable no-continue */
212
+ if (cachedCellProperties.hidden) {
213
+ continue;
214
+ }
207
215
  const templates = {
208
216
  checkedTemplate: cachedCellProperties.checkedTemplate,
209
217
  uncheckedTemplate: cachedCellProperties.uncheckedTemplate
@@ -294,13 +302,16 @@ function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellProperties
294
302
  const bottomRight = selRange[key].getBottomEndCorner();
295
303
  for (let visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {
296
304
  for (let visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {
297
- const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
305
+ const cellMeta = hotInstance.getCellMeta(visualRow, visualColumn);
306
+
307
+ /* eslint-disable no-continue */
308
+ if (cellMeta.readOnly) {
309
+ continue;
310
+ }
298
311
  const cell = hotInstance.getCell(visualRow, visualColumn);
299
- if (cell === null || cell === undefined) {
300
- return true;
301
- } else {
312
+ if (cell instanceof HTMLElement) {
302
313
  const checkboxes = cell.querySelectorAll('input[type=checkbox]');
303
- if (checkboxes.length > 0 && !cachedCellProperties.readOnly) {
314
+ if (checkboxes.length > 0) {
304
315
  return true;
305
316
  }
306
317
  }
@@ -1,10 +1,13 @@
1
1
  import "core-js/modules/es.array.push.js";
2
+ import "core-js/modules/esnext.iterator.constructor.js";
3
+ import "core-js/modules/esnext.iterator.every.js";
4
+ import "core-js/modules/esnext.iterator.map.js";
2
5
  import { baseRenderer } from "../baseRenderer/index.mjs";
3
6
  import EventManager from "../../eventManager.mjs";
4
7
  import { empty, addClass, setAttribute } from "../../helpers/dom/element.mjs";
5
8
  import { isEmpty, stringify } from "../../helpers/mixed.mjs";
6
9
  import { EDITOR_EDIT_GROUP as SHORTCUTS_GROUP_EDITOR } from "../../shortcutContexts/index.mjs";
7
- import Hooks from "../../pluginHooks.mjs";
10
+ import { Hooks } from "../../core/hooks/index.mjs";
8
11
  import { A11Y_CHECKBOX, A11Y_CHECKED, A11Y_LABEL } from "../../helpers/a11y.mjs";
9
12
  import { CHECKBOX_CHECKED, CHECKBOX_UNCHECKED } from "../../i18n/constants.mjs";
10
13
  const isListeningKeyDownEvent = new WeakMap();
@@ -156,7 +159,7 @@ export function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellPro
156
159
  },
157
160
  runOnlyIf: () => {
158
161
  const range = hotInstance.getSelectedRangeLast();
159
- return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.isSingle()) && range.highlight.isCell();
162
+ return hotInstance.getSettings().enterBeginsEditing && (range === null || range === void 0 ? void 0 : range.highlight.isCell()) && !hotInstance.selection.isMultiple();
160
163
  }
161
164
  }, {
162
165
  keys: [['delete'], ['backspace']],
@@ -199,6 +202,11 @@ export function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellPro
199
202
  for (let visualRow = startRow; visualRow <= endRow; visualRow += 1) {
200
203
  for (let visualColumn = startColumn; visualColumn <= endColumn; visualColumn += 1) {
201
204
  const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
205
+
206
+ /* eslint-disable no-continue */
207
+ if (cachedCellProperties.hidden) {
208
+ continue;
209
+ }
202
210
  const templates = {
203
211
  checkedTemplate: cachedCellProperties.checkedTemplate,
204
212
  uncheckedTemplate: cachedCellProperties.uncheckedTemplate
@@ -289,13 +297,16 @@ export function checkboxRenderer(hotInstance, TD, row, col, prop, value, cellPro
289
297
  const bottomRight = selRange[key].getBottomEndCorner();
290
298
  for (let visualRow = topLeft.row; visualRow <= bottomRight.row; visualRow++) {
291
299
  for (let visualColumn = topLeft.col; visualColumn <= bottomRight.col; visualColumn++) {
292
- const cachedCellProperties = hotInstance.getCellMeta(visualRow, visualColumn);
300
+ const cellMeta = hotInstance.getCellMeta(visualRow, visualColumn);
301
+
302
+ /* eslint-disable no-continue */
303
+ if (cellMeta.readOnly) {
304
+ continue;
305
+ }
293
306
  const cell = hotInstance.getCell(visualRow, visualColumn);
294
- if (cell === null || cell === undefined) {
295
- return true;
296
- } else {
307
+ if (cell instanceof HTMLElement) {
297
308
  const checkboxes = cell.querySelectorAll('input[type=checkbox]');
298
- if (checkboxes.length > 0 && !cachedCellProperties.readOnly) {
309
+ if (checkboxes.length > 0) {
299
310
  return true;
300
311
  }
301
312
  }
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/esnext.iterator.constructor.js");
4
+ require("core-js/modules/esnext.iterator.for-each.js");
3
5
  exports.__esModule = true;
4
6
  var _exportNames = {
5
7
  Selection: true,
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
+ require("core-js/modules/esnext.iterator.constructor.js");
7
+ require("core-js/modules/esnext.iterator.some.js");
6
8
  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; }
7
9
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
10
  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); }
@@ -1,5 +1,7 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
+ import "core-js/modules/esnext.iterator.constructor.js";
4
+ import "core-js/modules/esnext.iterator.some.js";
3
5
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
7
  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); }
@@ -10,6 +10,9 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
10
10
  require("core-js/modules/es.set.is-superset-of.v2.js");
11
11
  require("core-js/modules/es.set.symmetric-difference.v2.js");
12
12
  require("core-js/modules/es.set.union.v2.js");
13
+ require("core-js/modules/esnext.iterator.constructor.js");
14
+ require("core-js/modules/esnext.iterator.for-each.js");
15
+ require("core-js/modules/esnext.iterator.some.js");
13
16
  var _highlight = _interopRequireWildcard(require("./highlight/highlight"));
14
17
  var _range = _interopRequireDefault(require("./range"));
15
18
  var _object = require("./../helpers/object");
@@ -1205,9 +1208,11 @@ class Selection {
1205
1208
  if (!this.isSelected()) {
1206
1209
  return;
1207
1210
  }
1208
- const focusHighlight = this.highlight.getFocus();
1209
1211
  const currentLayer = this.getLayerLevel();
1210
- focusHighlight.commit().syncWith(this.selectedRange.current());
1212
+ const cellRange = this.selectedRange.current();
1213
+ if (this.highlight.isEnabledFor(_highlight.FOCUS_TYPE, cellRange.highlight)) {
1214
+ this.highlight.getFocus().commit().syncWith(cellRange);
1215
+ }
1211
1216
 
1212
1217
  // Rewriting rendered ranges going through all layers.
1213
1218
  for (let layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
@@ -7,6 +7,9 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
7
7
  import "core-js/modules/es.set.is-superset-of.v2.js";
8
8
  import "core-js/modules/es.set.symmetric-difference.v2.js";
9
9
  import "core-js/modules/es.set.union.v2.js";
10
+ import "core-js/modules/esnext.iterator.constructor.js";
11
+ import "core-js/modules/esnext.iterator.for-each.js";
12
+ import "core-js/modules/esnext.iterator.some.js";
10
13
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
11
14
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
12
15
  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; }
@@ -1199,9 +1202,11 @@ class Selection {
1199
1202
  if (!this.isSelected()) {
1200
1203
  return;
1201
1204
  }
1202
- const focusHighlight = this.highlight.getFocus();
1203
1205
  const currentLayer = this.getLayerLevel();
1204
- focusHighlight.commit().syncWith(this.selectedRange.current());
1206
+ const cellRange = this.selectedRange.current();
1207
+ if (this.highlight.isEnabledFor(FOCUS_TYPE, cellRange.highlight)) {
1208
+ this.highlight.getFocus().commit().syncWith(cellRange);
1209
+ }
1205
1210
 
1206
1211
  // Rewriting rendered ranges going through all layers.
1207
1212
  for (let layerLevel = 0; layerLevel < this.selectedRange.size(); layerLevel += 1) {
@@ -14,6 +14,8 @@ require("core-js/modules/es.set.is-subset-of.v2.js");
14
14
  require("core-js/modules/es.set.is-superset-of.v2.js");
15
15
  require("core-js/modules/es.set.symmetric-difference.v2.js");
16
16
  require("core-js/modules/es.set.union.v2.js");
17
+ require("core-js/modules/esnext.iterator.constructor.js");
18
+ require("core-js/modules/esnext.iterator.some.js");
17
19
  var _src = require("./../3rdparty/walkontable/src");
18
20
  var _array = require("./../helpers/array");
19
21
  var _mixed = require("./../helpers/mixed");
@@ -7,6 +7,8 @@ import "core-js/modules/es.set.is-subset-of.v2.js";
7
7
  import "core-js/modules/es.set.is-superset-of.v2.js";
8
8
  import "core-js/modules/es.set.symmetric-difference.v2.js";
9
9
  import "core-js/modules/es.set.union.v2.js";
10
+ import "core-js/modules/esnext.iterator.constructor.js";
11
+ import "core-js/modules/esnext.iterator.some.js";
10
12
  import { CellRange } from "./../3rdparty/walkontable/src/index.mjs";
11
13
  import { arrayEach, arrayReduce } from "./../helpers/array.mjs";
12
14
  import { isUndefined } from "./../helpers/mixed.mjs";
package/settings.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { PikadayOptions } from '@handsontable/pikaday';
2
2
  import Core from './core';
3
- import { Events } from './pluginHooks';
3
+ import { Events } from './core/hooks';
4
4
  import {
5
5
  CellValue,
6
6
  ColumnDataGetterSetterFunction,
@@ -214,6 +214,7 @@ export interface GridSettings extends Events {
214
214
  strict?: boolean;
215
215
  tableClassName?: string | string[];
216
216
  tabMoves?: CellCoords | SimpleCellCoords | ((event: KeyboardEvent) => CellCoords | SimpleCellCoords);
217
+ themeName?: string;
217
218
  title?: string;
218
219
  trimDropdown?: boolean;
219
220
  trimRows?: TrimRowsSettings;
@@ -224,6 +225,8 @@ export interface GridSettings extends Events {
224
225
  validator?: BaseValidator | RegExp | ValidatorType | string;
225
226
  viewportColumnRenderingOffset?: number | 'auto';
226
227
  viewportRowRenderingOffset?: number | 'auto';
228
+ viewportColumnRenderingThreshold?: number | 'auto';
229
+ viewportRowRenderingThreshold?: number | 'auto';
227
230
  visibleRows?: number;
228
231
  width?: number | string | (() => number | string);
229
232
  wordWrap?: boolean;
@@ -11,7 +11,7 @@ const command = exports.command = {
11
11
  const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, -1);
12
12
  if (row !== null) {
13
13
  const coords = hot._createCellCoords(row, to.col);
14
- const scrollPadding = to.row - hot.view.getFirstFullyVisibleRow();
14
+ const scrollPadding = to.row - hot.getFirstFullyVisibleRow();
15
15
  const nextVerticalScroll = Math.min(coords.row - scrollPadding, hot.countRows() - 1);
16
16
  hot.selection.setRangeEnd(coords);
17
17
  hot.scrollViewportTo({
@@ -8,7 +8,7 @@ export const command = {
8
8
  const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, -1);
9
9
  if (row !== null) {
10
10
  const coords = hot._createCellCoords(row, to.col);
11
- const scrollPadding = to.row - hot.view.getFirstFullyVisibleRow();
11
+ const scrollPadding = to.row - hot.getFirstFullyVisibleRow();
12
12
  const nextVerticalScroll = Math.min(coords.row - scrollPadding, hot.countRows() - 1);
13
13
  hot.selection.setRangeEnd(coords);
14
14
  hot.scrollViewportTo({
@@ -11,7 +11,7 @@ const command = exports.command = {
11
11
  const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, 1);
12
12
  if (row !== null) {
13
13
  const coords = hot._createCellCoords(row, to.col);
14
- const scrollPadding = to.row - hot.view.getFirstFullyVisibleRow();
14
+ const scrollPadding = to.row - hot.getFirstFullyVisibleRow();
15
15
  const nextVerticalScroll = Math.max(coords.row - scrollPadding, 0);
16
16
  hot.selection.setRangeEnd(coords);
17
17
  hot.scrollViewportTo({
@@ -8,7 +8,7 @@ export const command = {
8
8
  const row = hot.rowIndexMapper.getNearestNotHiddenIndex(nextRowIndexToSelect, 1);
9
9
  if (row !== null) {
10
10
  const coords = hot._createCellCoords(row, to.col);
11
- const scrollPadding = to.row - hot.view.getFirstFullyVisibleRow();
11
+ const scrollPadding = to.row - hot.getFirstFullyVisibleRow();
12
12
  const nextVerticalScroll = Math.max(coords.row - scrollPadding, 0);
13
13
  hot.selection.setRangeEnd(coords);
14
14
  hot.scrollViewportTo({
@@ -2,6 +2,8 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.createKeyboardShortcutCommandsPool = createKeyboardShortcutCommandsPool;
5
+ require("core-js/modules/esnext.iterator.constructor.js");
6
+ require("core-js/modules/esnext.iterator.for-each.js");
5
7
  var _editor = require("./editor");
6
8
  var _extendCellsSelection = require("./extendCellsSelection");
7
9
  var _moveCellSelection = require("./moveCellSelection");
@@ -1,3 +1,5 @@
1
+ import "core-js/modules/esnext.iterator.constructor.js";
2
+ import "core-js/modules/esnext.iterator.for-each.js";
1
3
  import { getAllCommands as getAllEditorCommands } from "./editor/index.mjs";
2
4
  import { getAllCommands as getAllSelectionExtendCommands } from "./extendCellsSelection/index.mjs";
3
5
  import { getAllCommands as getAllSelectionMoveCommands } from "./moveCellSelection/index.mjs";
@@ -7,10 +7,10 @@ const command = exports.command = {
7
7
  const {
8
8
  highlight
9
9
  } = hot.getSelectedRangeLast();
10
- const firstVisibleRow = hot.view.getFirstFullyVisibleRow() - 1;
11
- const firstVisibleColumn = hot.view.getFirstFullyVisibleColumn() - 1;
12
- const lastVisibleRow = hot.view.getLastFullyVisibleRow() + 1;
13
- const lastVisibleColumn = hot.view.getLastFullyVisibleColumn() + 1;
10
+ const firstVisibleRow = hot.getFirstFullyVisibleRow() - 1;
11
+ const firstVisibleColumn = hot.getFirstFullyVisibleColumn() - 1;
12
+ const lastVisibleRow = hot.getLastFullyVisibleRow() + 1;
13
+ const lastVisibleColumn = hot.getLastFullyVisibleColumn() + 1;
14
14
  const visibleCoordsFrom = hot._createCellCoords(firstVisibleRow, firstVisibleColumn);
15
15
  const visibleCoordsTo = hot._createCellCoords(lastVisibleRow, lastVisibleColumn);
16
16
  const visibleRange = hot._createCellRange(visibleCoordsFrom, visibleCoordsFrom, visibleCoordsTo);
@@ -4,10 +4,10 @@ export const command = {
4
4
  const {
5
5
  highlight
6
6
  } = hot.getSelectedRangeLast();
7
- const firstVisibleRow = hot.view.getFirstFullyVisibleRow() - 1;
8
- const firstVisibleColumn = hot.view.getFirstFullyVisibleColumn() - 1;
9
- const lastVisibleRow = hot.view.getLastFullyVisibleRow() + 1;
10
- const lastVisibleColumn = hot.view.getLastFullyVisibleColumn() + 1;
7
+ const firstVisibleRow = hot.getFirstFullyVisibleRow() - 1;
8
+ const firstVisibleColumn = hot.getFirstFullyVisibleColumn() - 1;
9
+ const lastVisibleRow = hot.getLastFullyVisibleRow() + 1;
10
+ const lastVisibleColumn = hot.getLastFullyVisibleColumn() + 1;
11
11
  const visibleCoordsFrom = hot._createCellCoords(firstVisibleRow, firstVisibleColumn);
12
12
  const visibleCoordsTo = hot._createCellCoords(lastVisibleRow, lastVisibleColumn);
13
13
  const visibleRange = hot._createCellRange(visibleCoordsFrom, visibleCoordsFrom, visibleCoordsTo);