handsontable 14.6.1 → 15.0.0-next-fdd4480-20241205

Sign up to get free protection for your applications and to get access to all the features.
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);