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
@@ -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",
13
+ "version": "15.0.0-next-fdd4480-20241205",
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
  *