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
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
57
57
  /******/
58
58
  /************************************************************************/
59
59
  var __webpack_exports__ = {};
60
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
60
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
61
61
  (() => {
62
62
  "use strict";
63
63
  var exports = __webpack_exports__;
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
57
57
  /******/
58
58
  /************************************************************************/
59
59
  var __webpack_exports__ = {};
60
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
60
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
61
61
  (() => {
62
62
  "use strict";
63
63
  var exports = __webpack_exports__;
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
57
57
  /******/
58
58
  /************************************************************************/
59
59
  var __webpack_exports__ = {};
60
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
60
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
61
61
  (() => {
62
62
  "use strict";
63
63
  var exports = __webpack_exports__;
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
57
57
  /******/
58
58
  /************************************************************************/
59
59
  var __webpack_exports__ = {};
60
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
60
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
61
61
  (() => {
62
62
  "use strict";
63
63
  var exports = __webpack_exports__;
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
57
57
  /******/
58
58
  /************************************************************************/
59
59
  var __webpack_exports__ = {};
60
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
60
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
61
61
  (() => {
62
62
  "use strict";
63
63
  var exports = __webpack_exports__;
@@ -57,7 +57,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
57
57
  /******/
58
58
  /************************************************************************/
59
59
  var __webpack_exports__ = {};
60
- // This entry need to be wrapped in an IIFE because it need to be in strict mode.
60
+ // This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
61
61
  (() => {
62
62
  "use strict";
63
63
  var exports = __webpack_exports__;
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "https://github.com/handsontable/handsontable/issues"
11
11
  },
12
12
  "author": "Handsoncode <hello@handsontable.com>",
13
- "version": "14.6.1-next-689aaa6-20241016",
13
+ "version": "15.0.0-next-4472a60-20241203",
14
14
  "main": "index",
15
15
  "module": "index.mjs",
16
16
  "jsnext:main": "index.mjs",
@@ -33,12 +33,10 @@
33
33
  ],
34
34
  "dependencies": {
35
35
  "@handsontable/pikaday": "^1.0.0",
36
- "@types/pikaday": "1.7.4",
37
36
  "core-js": "^3.37.0",
38
- "dompurify": "^2.1.1",
37
+ "dompurify": "^3.1.7",
39
38
  "moment": "2.30.1",
40
- "numbro": "2.1.2",
41
- "pikaday": "1.8.2"
39
+ "numbro": "2.5.0"
42
40
  },
43
41
  "devDependencies": {
44
42
  "@babel/cli": "^7.8.3",
@@ -50,7 +48,6 @@
50
48
  "@babel/register": "^7.8.3",
51
49
  "@babel/runtime": "^7.11.2",
52
50
  "@babel/types": "^7.12.12",
53
- "@typescript-eslint/eslint-plugin": "^4.33.0",
54
51
  "babel-jest": "^26.6.3",
55
52
  "babel-loader": "^8.0.4",
56
53
  "babel-plugin-forbidden-imports": "^0.1.2",
@@ -93,9 +90,13 @@
93
90
  "sass-loader": "^10.4.1",
94
91
  "string-replace-loader": "^3.1.0",
95
92
  "stylelint": "^16.3.1",
93
+ "stylelint-config-standard": "^36.0.1",
94
+ "stylelint-config-standard-scss": "^13.1.0",
96
95
  "typescript": "3.8.2",
96
+ "@typescript-eslint/eslint-plugin": "^4.33.0",
97
97
  "webpack": "^5.88.1",
98
- "webpack-cli": "^5.1.4"
98
+ "webpack-cli": "^5.1.4",
99
+ "webpack-remove-empty-scripts": "^1.0.4"
99
100
  },
100
101
  "optionalDependencies": {
101
102
  "hyperformula": "^2.6.2"
@@ -472,6 +473,11 @@
472
473
  "require": "./plugins/search/index.js",
473
474
  "import": "./plugins/search/index.mjs"
474
475
  },
476
+ "./plugins/stretchColumns": {
477
+ "types": "./plugins/stretchColumns/index.d.ts",
478
+ "require": "./plugins/stretchColumns/index.js",
479
+ "import": "./plugins/stretchColumns/index.mjs"
480
+ },
475
481
  "./plugins/touchScroll": {
476
482
  "types": "./plugins/touchScroll/index.d.ts",
477
483
  "require": "./plugins/touchScroll/index.js",
@@ -767,6 +773,12 @@
767
773
  "./dist/languages/zh-CN.min.js": "./dist/languages/zh-CN.min.js",
768
774
  "./dist/languages/zh-TW.js": "./dist/languages/zh-TW.js",
769
775
  "./dist/languages/zh-TW.min.js": "./dist/languages/zh-TW.min.js",
776
+ "./styles/handsontable.css": "./styles/handsontable.css",
777
+ "./styles/handsontable.min.css": "./styles/handsontable.min.css",
778
+ "./styles/ht-theme-horizon.css": "./styles/ht-theme-horizon.css",
779
+ "./styles/ht-theme-horizon.min.css": "./styles/ht-theme-horizon.min.css",
780
+ "./styles/ht-theme-main.css": "./styles/ht-theme-main.css",
781
+ "./styles/ht-theme-main.min.css": "./styles/ht-theme-main.min.css",
770
782
  ".": {
771
783
  "types": "./index.d.ts",
772
784
  "import": "./index.mjs",
@@ -777,6 +789,9 @@
777
789
  "import": "./base.mjs",
778
790
  "require": "./base.js"
779
791
  },
792
+ "./common": {
793
+ "types": "./common.d.ts"
794
+ },
780
795
  "./languages/all": {
781
796
  "import": "./languages/index.mjs",
782
797
  "require": "./languages/all.js"
@@ -3,10 +3,14 @@
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.filter.js");
8
+ require("core-js/modules/esnext.iterator.for-each.js");
9
+ require("core-js/modules/esnext.iterator.reduce.js");
6
10
  var _base = require("../base");
7
11
  var _feature = require("../../helpers/feature");
8
12
  var _ghostTable = _interopRequireDefault(require("../../utils/ghostTable"));
9
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
13
+ var _hooks = require("../../core/hooks");
10
14
  var _object = require("../../helpers/object");
11
15
  var _number = require("../../helpers/number");
12
16
  var _samplesGenerator = _interopRequireDefault(require("../../utils/samplesGenerator"));
@@ -23,7 +27,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
23
27
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
24
28
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
25
29
  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"); }
26
- _pluginHooks.default.getSingleton().register('modifyAutoColumnSizeSeed');
30
+ _hooks.Hooks.getSingleton().register('modifyAutoColumnSizeSeed');
27
31
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'autoColumnSize';
28
32
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 10;
29
33
  const COLUMN_SIZE_MAP_NAME = 'autoColumnSize';
@@ -138,6 +142,13 @@ class AutoColumnSize extends _base.BasePlugin {
138
142
  static get SETTING_KEYS() {
139
143
  return true;
140
144
  }
145
+ static get DEFAULT_SETTINGS() {
146
+ return {
147
+ useHeaders: true,
148
+ samplingRatio: null,
149
+ allowSampleDuplicates: false
150
+ };
151
+ }
141
152
  static get CALCULATION_STEP() {
142
153
  return 50;
143
154
  }
@@ -245,11 +256,12 @@ class AutoColumnSize extends _base.BasePlugin {
245
256
  if (this.enabled) {
246
257
  return;
247
258
  }
248
- const setting = this.hot.getSettings()[PLUGIN_KEY];
249
- if (setting && setting.useHeaders !== null && setting.useHeaders !== undefined) {
250
- this.ghostTable.setSetting('useHeaders', setting.useHeaders);
259
+ this.ghostTable.setSetting('useHeaders', this.getSetting('useHeaders'));
260
+ this.samplesGenerator.setAllowDuplicates(this.getSetting('allowSampleDuplicates'));
261
+ const samplingRatio = this.getSetting('samplingRatio');
262
+ if (samplingRatio && !isNaN(samplingRatio)) {
263
+ this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
251
264
  }
252
- this.setSamplingOptions();
253
265
  this.addHook('afterLoadData', function () {
254
266
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
255
267
  args[_key] = arguments[_key];
@@ -416,23 +428,6 @@ class AutoColumnSize extends _base.BasePlugin {
416
428
  this.inProgress = false;
417
429
  }
418
430
  }
419
- /**
420
- * Sets the sampling options.
421
- *
422
- * @private
423
- */
424
- setSamplingOptions() {
425
- const setting = this.hot.getSettings()[PLUGIN_KEY];
426
- const samplingRatio = setting && (0, _object.hasOwnProperty)(setting, 'samplingRatio') ? setting.samplingRatio : undefined;
427
- const allowSampleDuplicates = setting && (0, _object.hasOwnProperty)(setting, 'allowSampleDuplicates') ? setting.allowSampleDuplicates : undefined;
428
- if (samplingRatio && !isNaN(samplingRatio)) {
429
- this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
430
- }
431
- if (allowSampleDuplicates) {
432
- this.samplesGenerator.setAllowDuplicates(allowSampleDuplicates);
433
- }
434
- }
435
-
436
431
  /**
437
432
  * Recalculates all columns width (overwrite cache values).
438
433
  */
@@ -494,8 +489,8 @@ class AutoColumnSize extends _base.BasePlugin {
494
489
  * @returns {number} Returns visual column index, -1 if table is not rendered or if there are no columns to base the the calculations on.
495
490
  */
496
491
  getFirstVisibleColumn() {
497
- var _this$hot$view$getFir;
498
- return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleColumn()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;
492
+ var _this$hot$getFirstRen;
493
+ return (_this$hot$getFirstRen = this.hot.getFirstRenderedVisibleColumn()) !== null && _this$hot$getFirstRen !== void 0 ? _this$hot$getFirstRen : -1;
499
494
  }
500
495
 
501
496
  /**
@@ -504,8 +499,8 @@ class AutoColumnSize extends _base.BasePlugin {
504
499
  * @returns {number} Returns visual column index or -1 if table is not rendered.
505
500
  */
506
501
  getLastVisibleColumn() {
507
- var _this$hot$view$getLas;
508
- return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleColumn()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;
502
+ var _this$hot$getLastRend;
503
+ return (_this$hot$getLastRend = this.hot.getLastRenderedVisibleColumn()) !== null && _this$hot$getLastRend !== void 0 ? _this$hot$getLastRend : -1;
509
504
  }
510
505
 
511
506
  /**
@@ -1,5 +1,9 @@
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.filter.js";
5
+ import "core-js/modules/esnext.iterator.for-each.js";
6
+ import "core-js/modules/esnext.iterator.reduce.js";
3
7
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
4
8
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
5
9
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -12,8 +16,8 @@ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.h
12
16
  import { BasePlugin } from "../base/index.mjs";
13
17
  import { cancelAnimationFrame, requestAnimationFrame } from "../../helpers/feature.mjs";
14
18
  import GhostTable from "../../utils/ghostTable.mjs";
15
- import Hooks from "../../pluginHooks.mjs";
16
- import { isObject, hasOwnProperty } from "../../helpers/object.mjs";
19
+ import { Hooks } from "../../core/hooks/index.mjs";
20
+ import { isObject } from "../../helpers/object.mjs";
17
21
  import { valueAccordingPercent, rangeEach } from "../../helpers/number.mjs";
18
22
  import SamplesGenerator from "../../utils/samplesGenerator.mjs";
19
23
  import { isPercentValue } from "../../helpers/string.mjs";
@@ -134,6 +138,13 @@ export class AutoColumnSize extends BasePlugin {
134
138
  static get SETTING_KEYS() {
135
139
  return true;
136
140
  }
141
+ static get DEFAULT_SETTINGS() {
142
+ return {
143
+ useHeaders: true,
144
+ samplingRatio: null,
145
+ allowSampleDuplicates: false
146
+ };
147
+ }
137
148
  static get CALCULATION_STEP() {
138
149
  return 50;
139
150
  }
@@ -241,11 +252,12 @@ export class AutoColumnSize extends BasePlugin {
241
252
  if (this.enabled) {
242
253
  return;
243
254
  }
244
- const setting = this.hot.getSettings()[PLUGIN_KEY];
245
- if (setting && setting.useHeaders !== null && setting.useHeaders !== undefined) {
246
- this.ghostTable.setSetting('useHeaders', setting.useHeaders);
255
+ this.ghostTable.setSetting('useHeaders', this.getSetting('useHeaders'));
256
+ this.samplesGenerator.setAllowDuplicates(this.getSetting('allowSampleDuplicates'));
257
+ const samplingRatio = this.getSetting('samplingRatio');
258
+ if (samplingRatio && !isNaN(samplingRatio)) {
259
+ this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
247
260
  }
248
- this.setSamplingOptions();
249
261
  this.addHook('afterLoadData', function () {
250
262
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
251
263
  args[_key] = arguments[_key];
@@ -412,23 +424,6 @@ export class AutoColumnSize extends BasePlugin {
412
424
  this.inProgress = false;
413
425
  }
414
426
  }
415
- /**
416
- * Sets the sampling options.
417
- *
418
- * @private
419
- */
420
- setSamplingOptions() {
421
- const setting = this.hot.getSettings()[PLUGIN_KEY];
422
- const samplingRatio = setting && hasOwnProperty(setting, 'samplingRatio') ? setting.samplingRatio : undefined;
423
- const allowSampleDuplicates = setting && hasOwnProperty(setting, 'allowSampleDuplicates') ? setting.allowSampleDuplicates : undefined;
424
- if (samplingRatio && !isNaN(samplingRatio)) {
425
- this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
426
- }
427
- if (allowSampleDuplicates) {
428
- this.samplesGenerator.setAllowDuplicates(allowSampleDuplicates);
429
- }
430
- }
431
-
432
427
  /**
433
428
  * Recalculates all columns width (overwrite cache values).
434
429
  */
@@ -490,8 +485,8 @@ export class AutoColumnSize extends BasePlugin {
490
485
  * @returns {number} Returns visual column index, -1 if table is not rendered or if there are no columns to base the the calculations on.
491
486
  */
492
487
  getFirstVisibleColumn() {
493
- var _this$hot$view$getFir;
494
- return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleColumn()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;
488
+ var _this$hot$getFirstRen;
489
+ return (_this$hot$getFirstRen = this.hot.getFirstRenderedVisibleColumn()) !== null && _this$hot$getFirstRen !== void 0 ? _this$hot$getFirstRen : -1;
495
490
  }
496
491
 
497
492
  /**
@@ -500,8 +495,8 @@ export class AutoColumnSize extends BasePlugin {
500
495
  * @returns {number} Returns visual column index or -1 if table is not rendered.
501
496
  */
502
497
  getLastVisibleColumn() {
503
- var _this$hot$view$getLas;
504
- return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleColumn()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;
498
+ var _this$hot$getLastRend;
499
+ return (_this$hot$getLastRend = this.hot.getLastRenderedVisibleColumn()) !== null && _this$hot$getLastRend !== void 0 ? _this$hot$getLastRend : -1;
505
500
  }
506
501
 
507
502
  /**
@@ -3,6 +3,10 @@
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.filter.js");
8
+ require("core-js/modules/esnext.iterator.for-each.js");
9
+ require("core-js/modules/esnext.iterator.reduce.js");
6
10
  var _base = require("../base");
7
11
  var _feature = require("../../helpers/feature");
8
12
  var _ghostTable = _interopRequireDefault(require("../../utils/ghostTable"));
@@ -120,6 +124,13 @@ class AutoRowSize extends _base.BasePlugin {
120
124
  static get SETTING_KEYS() {
121
125
  return true;
122
126
  }
127
+ static get DEFAULT_SETTINGS() {
128
+ return {
129
+ useHeaders: true,
130
+ samplingRatio: null,
131
+ allowSampleDuplicates: false
132
+ };
133
+ }
123
134
  static get CALCULATION_STEP() {
124
135
  return 50;
125
136
  }
@@ -230,7 +241,11 @@ class AutoRowSize extends _base.BasePlugin {
230
241
  if (this.enabled) {
231
242
  return;
232
243
  }
233
- this.setSamplingOptions();
244
+ this.samplesGenerator.setAllowDuplicates(this.getSetting('allowSampleDuplicates'));
245
+ const samplingRatio = this.getSetting('samplingRatio');
246
+ if (samplingRatio && !isNaN(samplingRatio)) {
247
+ this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
248
+ }
234
249
  this.addHook('afterLoadData', function () {
235
250
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
236
251
  args[_key] = arguments[_key];
@@ -408,23 +423,6 @@ class AutoRowSize extends _base.BasePlugin {
408
423
  this.hot.view.adjustElementsSize();
409
424
  }
410
425
  }
411
- /**
412
- * Sets the sampling options.
413
- *
414
- * @private
415
- */
416
- setSamplingOptions() {
417
- const setting = this.hot.getSettings()[PLUGIN_KEY];
418
- const samplingRatio = setting && (0, _object.hasOwnProperty)(setting, 'samplingRatio') ? setting.samplingRatio : undefined;
419
- const allowSampleDuplicates = setting && (0, _object.hasOwnProperty)(setting, 'allowSampleDuplicates') ? setting.allowSampleDuplicates : undefined;
420
- if (samplingRatio && !isNaN(samplingRatio)) {
421
- this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
422
- }
423
- if (allowSampleDuplicates) {
424
- this.samplesGenerator.setAllowDuplicates(allowSampleDuplicates);
425
- }
426
- }
427
-
428
426
  /**
429
427
  * Recalculates all rows height (overwrite cache values).
430
428
  */
@@ -497,8 +495,8 @@ class AutoRowSize extends _base.BasePlugin {
497
495
  * @returns {number} Returns row index, -1 if table is not rendered or if there are no rows to base the the calculations on.
498
496
  */
499
497
  getFirstVisibleRow() {
500
- var _this$hot$view$getFir;
501
- return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleRow()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;
498
+ var _this$hot$getFirstRen;
499
+ return (_this$hot$getFirstRen = this.hot.getFirstRenderedVisibleRow()) !== null && _this$hot$getFirstRen !== void 0 ? _this$hot$getFirstRen : -1;
502
500
  }
503
501
 
504
502
  /**
@@ -507,8 +505,8 @@ class AutoRowSize extends _base.BasePlugin {
507
505
  * @returns {number} Returns row index or -1 if table is not rendered.
508
506
  */
509
507
  getLastVisibleRow() {
510
- var _this$hot$view$getLas;
511
- return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleRow()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;
508
+ var _this$hot$getLastRend;
509
+ return (_this$hot$getLastRend = this.hot.getLastRenderedVisibleRow()) !== null && _this$hot$getLastRend !== void 0 ? _this$hot$getLastRend : -1;
512
510
  }
513
511
 
514
512
  /**
@@ -1,5 +1,9 @@
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.filter.js";
5
+ import "core-js/modules/esnext.iterator.for-each.js";
6
+ import "core-js/modules/esnext.iterator.reduce.js";
3
7
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
4
8
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
5
9
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -12,7 +16,7 @@ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.h
12
16
  import { BasePlugin } from "../base/index.mjs";
13
17
  import { cancelAnimationFrame, requestAnimationFrame } from "../../helpers/feature.mjs";
14
18
  import GhostTable from "../../utils/ghostTable.mjs";
15
- import { isObject, hasOwnProperty } from "../../helpers/object.mjs";
19
+ import { isObject } from "../../helpers/object.mjs";
16
20
  import { valueAccordingPercent, rangeEach } from "../../helpers/number.mjs";
17
21
  import SamplesGenerator from "../../utils/samplesGenerator.mjs";
18
22
  import { isPercentValue } from "../../helpers/string.mjs";
@@ -116,6 +120,13 @@ export class AutoRowSize extends BasePlugin {
116
120
  static get SETTING_KEYS() {
117
121
  return true;
118
122
  }
123
+ static get DEFAULT_SETTINGS() {
124
+ return {
125
+ useHeaders: true,
126
+ samplingRatio: null,
127
+ allowSampleDuplicates: false
128
+ };
129
+ }
119
130
  static get CALCULATION_STEP() {
120
131
  return 50;
121
132
  }
@@ -226,7 +237,11 @@ export class AutoRowSize extends BasePlugin {
226
237
  if (this.enabled) {
227
238
  return;
228
239
  }
229
- this.setSamplingOptions();
240
+ this.samplesGenerator.setAllowDuplicates(this.getSetting('allowSampleDuplicates'));
241
+ const samplingRatio = this.getSetting('samplingRatio');
242
+ if (samplingRatio && !isNaN(samplingRatio)) {
243
+ this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
244
+ }
230
245
  this.addHook('afterLoadData', function () {
231
246
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
232
247
  args[_key] = arguments[_key];
@@ -404,23 +419,6 @@ export class AutoRowSize extends BasePlugin {
404
419
  this.hot.view.adjustElementsSize();
405
420
  }
406
421
  }
407
- /**
408
- * Sets the sampling options.
409
- *
410
- * @private
411
- */
412
- setSamplingOptions() {
413
- const setting = this.hot.getSettings()[PLUGIN_KEY];
414
- const samplingRatio = setting && hasOwnProperty(setting, 'samplingRatio') ? setting.samplingRatio : undefined;
415
- const allowSampleDuplicates = setting && hasOwnProperty(setting, 'allowSampleDuplicates') ? setting.allowSampleDuplicates : undefined;
416
- if (samplingRatio && !isNaN(samplingRatio)) {
417
- this.samplesGenerator.setSampleCount(parseInt(samplingRatio, 10));
418
- }
419
- if (allowSampleDuplicates) {
420
- this.samplesGenerator.setAllowDuplicates(allowSampleDuplicates);
421
- }
422
- }
423
-
424
422
  /**
425
423
  * Recalculates all rows height (overwrite cache values).
426
424
  */
@@ -493,8 +491,8 @@ export class AutoRowSize extends BasePlugin {
493
491
  * @returns {number} Returns row index, -1 if table is not rendered or if there are no rows to base the the calculations on.
494
492
  */
495
493
  getFirstVisibleRow() {
496
- var _this$hot$view$getFir;
497
- return (_this$hot$view$getFir = this.hot.view.getFirstRenderedVisibleRow()) !== null && _this$hot$view$getFir !== void 0 ? _this$hot$view$getFir : -1;
494
+ var _this$hot$getFirstRen;
495
+ return (_this$hot$getFirstRen = this.hot.getFirstRenderedVisibleRow()) !== null && _this$hot$getFirstRen !== void 0 ? _this$hot$getFirstRen : -1;
498
496
  }
499
497
 
500
498
  /**
@@ -503,8 +501,8 @@ export class AutoRowSize extends BasePlugin {
503
501
  * @returns {number} Returns row index or -1 if table is not rendered.
504
502
  */
505
503
  getLastVisibleRow() {
506
- var _this$hot$view$getLas;
507
- return (_this$hot$view$getLas = this.hot.view.getLastRenderedVisibleRow()) !== null && _this$hot$view$getLas !== void 0 ? _this$hot$view$getLas : -1;
504
+ var _this$hot$getLastRend;
505
+ return (_this$hot$getLastRend = this.hot.getLastRenderedVisibleRow()) !== null && _this$hot$getLastRend !== void 0 ? _this$hot$getLastRend : -1;
508
506
  }
509
507
 
510
508
  /**
@@ -4,21 +4,20 @@ exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
5
  require("core-js/modules/es.array.push.js");
6
6
  var _base = require("../base");
7
- var _pluginHooks = _interopRequireDefault(require("../../pluginHooks"));
7
+ var _hooks = require("../../core/hooks");
8
8
  var _element = require("../../helpers/dom/element");
9
9
  var _array = require("../../helpers/array");
10
10
  var _mixed = require("../../helpers/mixed");
11
11
  var _utils = require("./utils");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
12
  function _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }
14
13
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
15
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; }
16
15
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
17
16
  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); }
18
17
  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"); }
19
- _pluginHooks.default.getSingleton().register('modifyAutofillRange');
20
- _pluginHooks.default.getSingleton().register('beforeAutofill');
21
- _pluginHooks.default.getSingleton().register('afterAutofill');
18
+ _hooks.Hooks.getSingleton().register('modifyAutofillRange');
19
+ _hooks.Hooks.getSingleton().register('beforeAutofill');
20
+ _hooks.Hooks.getSingleton().register('afterAutofill');
22
21
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'autofill';
23
22
  const PLUGIN_PRIORITY = exports.PLUGIN_PRIORITY = 20;
24
23
  const SETTING_KEYS = ['fillHandle'];
@@ -7,7 +7,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
7
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); }
8
8
  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"); }
9
9
  import { BasePlugin } from "../base/index.mjs";
10
- import Hooks from "../../pluginHooks.mjs";
10
+ import { Hooks } from "../../core/hooks/index.mjs";
11
11
  import { offset, outerHeight, outerWidth } from "../../helpers/dom/element.mjs";
12
12
  import { arrayEach, arrayMap } from "../../helpers/array.mjs";
13
13
  import { isEmpty } from "../../helpers/mixed.mjs";
@@ -1,5 +1,5 @@
1
1
  import Core from '../../core';
2
- import { Events } from '../../pluginHooks';
2
+ import { Events } from '../../core/hooks';
3
3
 
4
4
  export class BasePlugin {
5
5
  readonly hot: Core;
@@ -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.for-each.js");
6
8
  var _object = require("../../helpers/object");
7
9
  var _array = require("../../helpers/array");
8
10
  var _registry = require("../registry");
@@ -21,6 +23,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
21
23
  function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
22
24
  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"); }
23
25
  const DEPS_TYPE_CHECKERS = new Map([['plugin', _registry.hasPlugin], ['cell-type', _registry2.hasCellType], ['editor', _registry3.hasEditor], ['renderer', _registry4.hasRenderer], ['validator', _registry5.hasValidator]]);
26
+ const defaultMainSettingSymbol = exports.defaultMainSettingSymbol = Symbol('mainSetting');
24
27
  const PLUGIN_KEY = exports.PLUGIN_KEY = 'base';
25
28
  const missingDepsMsgs = [];
26
29
  let initializedPlugins = null;
@@ -49,6 +52,15 @@ class BasePlugin {
49
52
  return [this.PLUGIN_KEY];
50
53
  }
51
54
 
55
+ /**
56
+ * The `DEFAULT_SETTINGS` getter defines the plugin default settings.
57
+ *
58
+ * @returns {object}
59
+ */
60
+ static get DEFAULT_SETTINGS() {
61
+ return {};
62
+ }
63
+
52
64
  /**
53
65
  * The instance of the {@link EventManager} class.
54
66
  *
@@ -149,6 +161,7 @@ class BasePlugin {
149
161
  if (isAllPluginsAreInitialized) {
150
162
  if (missingDepsMsgs.length > 0) {
151
163
  const errorMsg = [`${missingDepsMsgs.join('\n')}\n`, 'You have to import and register them manually.'].join('');
164
+ missingDepsMsgs.length = 0;
152
165
  throw new Error(errorMsg);
153
166
  }
154
167
  this.hot.runHooks('afterPluginsInitialized');
@@ -173,6 +186,34 @@ class BasePlugin {
173
186
  this.enabled = false;
174
187
  }
175
188
 
189
+ /**
190
+ * Gets the plugin settings. If there is no setting under the provided key, it returns the default setting
191
+ * provided by the DEFAULT_SETTINGS static property of the class.
192
+ *
193
+ * @param {string} [settingName] The setting name. If the setting name is not provided, it returns
194
+ * the whole plugin's settings object.
195
+ * @returns {*}
196
+ */
197
+ getSetting(settingName) {
198
+ const pluginSettings = this.hot.getSettings()[this.constructor.PLUGIN_KEY];
199
+ if (settingName === undefined) {
200
+ return pluginSettings;
201
+ }
202
+ const defaultSettings = this.constructor.DEFAULT_SETTINGS;
203
+ if ((Array.isArray(pluginSettings) || (0, _object.isObject)(pluginSettings)) && defaultSettings[defaultMainSettingSymbol] === settingName) {
204
+ var _pluginSettings$setti;
205
+ if (Array.isArray(pluginSettings)) {
206
+ return pluginSettings;
207
+ }
208
+ return (_pluginSettings$setti = pluginSettings[settingName]) !== null && _pluginSettings$setti !== void 0 ? _pluginSettings$setti : defaultSettings[settingName];
209
+ }
210
+ if ((0, _object.isObject)(pluginSettings)) {
211
+ var _pluginSettings$setti2;
212
+ return (_pluginSettings$setti2 = pluginSettings[settingName]) !== null && _pluginSettings$setti2 !== void 0 ? _pluginSettings$setti2 : defaultSettings[settingName];
213
+ }
214
+ return defaultSettings[settingName];
215
+ }
216
+
176
217
  /**
177
218
  * Add listener to plugin hooks system.
178
219
  *