handsontable 14.6.1 → 15.0.0-next-fdd4480-20241205

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
@@ -16,12 +16,10 @@ import { objectEach } from "../../../helpers/object.mjs";
16
16
  * @property {Option} currentRowClassName Option `currentRowClassName`.
17
17
  * @property {Option} data Option `data`.
18
18
  * @property {Option} defaultColumnWidth Option `defaultColumnWidth`.
19
- * @property {Option} defaultRowHeight Option `defaultRowHeight`.
20
19
  * @property {Option} externalRowCalculator Option `externalRowCalculator`.
21
20
  * @property {Option} fixedColumnsStart Option `fixedColumnsStart`.
22
21
  * @property {Option} fixedRowsBottom Option `fixedRowsBottom`.
23
22
  * @property {Option} fixedRowsTop Option `fixedRowsTop`.
24
- * @property {Option} freezeOverlays Option `freezeOverlays`.
25
23
  * @property {Option} groups Option `groups`.
26
24
  * @property {Option} hideBorderOnMouseDownOver Option `hideBorderOnMouseDownOver`.
27
25
  * @property {Option} isRtl Option `isRtl`.
@@ -30,7 +28,6 @@ import { objectEach } from "../../../helpers/object.mjs";
30
28
  * @property {Option} onBeforeHighlightingColumnHeader Option `onBeforeHighlightingColumnHeader`.
31
29
  * @property {Option} onBeforeHighlightingRowHeader Option `onBeforeHighlightingRowHeader`.
32
30
  * @property {Option} onBeforeRemoveCellClassNames Option `onBeforeRemoveCellClassNames`.
33
- * @property {Option} onBeforeStretchingColumnWidth Option `onBeforeStretchingColumnWidth`.
34
31
  * @property {Option} preventOverflow Option `preventOverflow`.
35
32
  * @property {Option} preventWheel Option `preventWheel`.
36
33
  * @property {Option} renderAllColumns Option `renderAllColumns`.
@@ -41,7 +38,6 @@ import { objectEach } from "../../../helpers/object.mjs";
41
38
  * @property {Option} shouldRenderBottomOverlay Option `shouldRenderBottomOverlay`.
42
39
  * @property {Option} shouldRenderInlineStartOverlay Option `shouldRenderInlineStartOverlay`.
43
40
  * @property {Option} shouldRenderTopOverlay Option `shouldRenderTopOverlay`.
44
- * @property {Option} stretchH Option `stretchH`.
45
41
  * @property {Option} table Option `table`.
46
42
  * @property {Option} totalColumns Option `totalColumns`.
47
43
  * @property {Option} totalRows Option `totalRows`.
@@ -63,6 +59,8 @@ import { objectEach } from "../../../helpers/object.mjs";
63
59
  * @property {?Option} onCellMouseUp Option `onCellMouseUp`.
64
60
  * @property {?Option} onDraw Option `onDraw`.
65
61
  * @property {?Option} onModifyGetCellCoords Option `onModifyGetCellCoords`.
62
+ * @property {?Option} onModifyGetCoordsElement Option `onModifyGetCoordsElement`.
63
+ * @property {?Option} onModifyGetCoords Option `onModifyGetCoords`.
66
64
  * @property {?Option} onModifyRowHeaderWidth Option `onModifyRowHeaderWidth`.
67
65
  * @property {?Option} onBeforeViewportScrollHorizontally Option `onBeforeViewportScrollHorizontally`.
68
66
  * @property {?Option} onBeforeViewportScrollVertically Option `onBeforeViewportScrollVertically`.
@@ -73,6 +71,8 @@ import { objectEach } from "../../../helpers/object.mjs";
73
71
  * @property {?Option} selections Option `selections`.
74
72
  * @property {?Option} viewportColumnCalculatorOverride Option `viewportColumnCalculatorOverride`.
75
73
  * @property {?Option} viewportRowCalculatorOverride Option `viewportRowCalculatorOverride`.
74
+ * @property {?Option} viewportColumnRenderingThreshold Option `viewportColumnRenderingThreshold`.
75
+ * @property {?Option} viewportRowRenderingThreshold Option `viewportRowRenderingThreshold`.
76
76
  */
77
77
  /**
78
78
  * @template TValue.
@@ -128,8 +128,6 @@ export default class Settings {
128
128
  isDataViewInstance: true,
129
129
  // presentation mode
130
130
  externalRowCalculator: false,
131
- stretchH: 'none',
132
- // values: all, last, none
133
131
  currentRowClassName: null,
134
132
  currentColumnClassName: null,
135
133
  preventOverflow() {
@@ -138,7 +136,6 @@ export default class Settings {
138
136
  preventWheel: false,
139
137
  // data source
140
138
  data: undefined,
141
- freezeOverlays: false,
142
139
  // Number of renderable columns for the left overlay.
143
140
  fixedColumnsStart: 0,
144
141
  // Number of renderable rows for the top overlay.
@@ -182,12 +179,13 @@ export default class Settings {
182
179
  rowHeightByOverlayName() {
183
180
  // return undefined means use default size for the rendered cell content
184
181
  },
185
- defaultRowHeight: 23,
186
182
  defaultColumnWidth: 50,
187
183
  selections: null,
188
184
  hideBorderOnMouseDownOver: false,
189
185
  viewportRowCalculatorOverride: null,
190
186
  viewportColumnCalculatorOverride: null,
187
+ viewportRowRenderingThreshold: null,
188
+ viewportColumnRenderingThreshold: null,
191
189
  // callbacks
192
190
  onCellMouseDown: null,
193
191
  onCellContextMenu: null,
@@ -212,9 +210,10 @@ export default class Settings {
212
210
  //
213
211
  onBeforeTouchScroll: null,
214
212
  onAfterMomentumScroll: null,
215
- onBeforeStretchingColumnWidth: width => width,
216
213
  onModifyRowHeaderWidth: null,
217
214
  onModifyGetCellCoords: null,
215
+ onModifyGetCoordsElement: null,
216
+ onModifyGetCoords: null,
218
217
  onBeforeHighlightingRowHeader: sourceRow => sourceRow,
219
218
  onBeforeHighlightingColumnHeader: sourceCol => sourceCol,
220
219
  onWindowResize: null,
@@ -61,7 +61,7 @@ class MasterTable extends _table.default {
61
61
  } else {
62
62
  trimmingElementParent.appendChild(cloneNode);
63
63
  }
64
- const cloneHeight = parseInt((0, _element.getComputedStyle)(cloneNode, rootWindow).height, 10);
64
+ const cloneHeight = parseInt(rootWindow.getComputedStyle(cloneNode).height, 10);
65
65
  trimmingElementParent.removeChild(cloneNode);
66
66
  if (cloneHeight === 0) {
67
67
  height = 0;
@@ -1,4 +1,4 @@
1
- import { getStyle, getComputedStyle, getTrimmingContainer, isVisible } from "./../../../../helpers/dom/element.mjs";
1
+ import { getStyle, getTrimmingContainer, isVisible } from "./../../../../helpers/dom/element.mjs";
2
2
  import Table from "../table.mjs";
3
3
  import calculatedRows from "./mixin/calculatedRows.mjs";
4
4
  import calculatedColumns from "./mixin/calculatedColumns.mjs";
@@ -57,7 +57,7 @@ class MasterTable extends Table {
57
57
  } else {
58
58
  trimmingElementParent.appendChild(cloneNode);
59
59
  }
60
- const cloneHeight = parseInt(getComputedStyle(cloneNode, rootWindow).height, 10);
60
+ const cloneHeight = parseInt(rootWindow.getComputedStyle(cloneNode).height, 10);
61
61
  trimmingElementParent.removeChild(cloneNode);
62
62
  if (cloneHeight === 0) {
63
63
  height = 0;
@@ -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 _element = require("../../../helpers/dom/element");
7
9
  var _function = require("../../../helpers/function");
8
10
  var _column = _interopRequireDefault(require("./filter/column"));
@@ -115,7 +117,8 @@ class Table {
115
117
  TBODY: this.TBODY,
116
118
  rowUtils: this.rowUtils,
117
119
  columnUtils: this.columnUtils,
118
- cellRenderer: this.wtSettings.getSettingPure('cellRenderer')
120
+ cellRenderer: this.wtSettings.getSettingPure('cellRenderer'),
121
+ stylesHandler: this.dataAccessObject.stylesHandler
119
122
  });
120
123
  }
121
124
 
@@ -296,10 +299,7 @@ class Table {
296
299
  }
297
300
  this.resetOversizedRows();
298
301
  this.tableRenderer.setActiveOverlayName(this.name).setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();
299
- let workspaceWidth;
300
302
  if (this.isMaster) {
301
- workspaceWidth = this.dataAccessObject.workspaceWidth;
302
- wtViewport.containerWidth = null;
303
303
  this.markOversizedColumnHeaders();
304
304
  }
305
305
  this.adjustColumnHeaderHeights();
@@ -312,19 +312,6 @@ class Table {
312
312
  }
313
313
  wtOverlays.refresh(false);
314
314
  wtOverlays.applyToDOM();
315
- const hiderWidth = (0, _element.outerWidth)(this.hider);
316
- const tableWidth = (0, _element.outerWidth)(this.TABLE);
317
- if (hiderWidth !== 0 && tableWidth !== hiderWidth) {
318
- // Recalculate the column widths, if width changes made in the overlays removed the scrollbar, thus changing the viewport width.
319
- this.columnUtils.calculateWidths();
320
- this.tableRenderer.renderer.colGroup.render();
321
- }
322
- if (workspaceWidth !== wtViewport.getWorkspaceWidth()) {
323
- // workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching
324
- wtViewport.containerWidth = null;
325
- this.columnUtils.calculateWidths();
326
- this.tableRenderer.renderer.colGroup.render();
327
- }
328
315
  this.wtSettings.getSetting('onDraw', true);
329
316
  } else if (this.is(_overlay.CLONE_BOTTOM)) {
330
317
  this.dataAccessObject.cloneSource.wtOverlays.adjustElementsSize();
@@ -367,7 +354,7 @@ class Table {
367
354
  markIfOversizedColumnHeader(col) {
368
355
  const sourceColIndex = this.columnFilter.renderedToSource(col);
369
356
  let level = this.wtSettings.getSetting('columnHeaders').length;
370
- const defaultRowHeight = this.wtSettings.getSetting('defaultRowHeight');
357
+ const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
371
358
  let previousColHeaderHeight;
372
359
  let currentHeader;
373
360
  let currentHeaderHeight;
@@ -466,7 +453,7 @@ class Table {
466
453
  getCell(coords) {
467
454
  let row = coords.row;
468
455
  let column = coords.col;
469
- const hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column);
456
+ const hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column, !this.isMaster, 'render');
470
457
  if (hookResult && Array.isArray(hookResult)) {
471
458
  [row, column] = hookResult;
472
459
  }
@@ -519,9 +506,8 @@ class Table {
519
506
  } else {
520
507
  return parentElement.childNodes[renderedRowIndex];
521
508
  }
522
- } else {
523
- return false;
524
509
  }
510
+ return false;
525
511
  }
526
512
 
527
513
  /**
@@ -631,6 +617,10 @@ class Table {
631
617
  } else {
632
618
  col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);
633
619
  }
620
+ const hookResult = this.wtSettings.getSetting('onModifyGetCoordsElement', row, col);
621
+ if (hookResult && Array.isArray(hookResult)) {
622
+ [row, col] = hookResult;
623
+ }
634
624
  return this.wot.createCellCoords(row, col);
635
625
  }
636
626
 
@@ -642,10 +632,14 @@ class Table {
642
632
  return;
643
633
  }
644
634
  let rowCount = this.TBODY.childNodes.length;
645
- const expectedTableHeight = rowCount * this.wtSettings.getSetting('defaultRowHeight');
635
+ const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
646
636
  const actualTableHeight = (0, _element.innerHeight)(this.TBODY) - 1;
637
+ const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
638
+ const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
639
+ const borderCompensation = borderBoxSizing ? 0 : 1;
640
+ const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
647
641
  let previousRowHeight;
648
- let rowInnerHeight;
642
+ let rowCurrentHeight;
649
643
  let sourceRowIndex;
650
644
  let currentTr;
651
645
  let rowHeader;
@@ -659,14 +653,17 @@ class Table {
659
653
  previousRowHeight = this.getRowHeight(sourceRowIndex);
660
654
  currentTr = this.getTrForRow(sourceRowIndex);
661
655
  rowHeader = currentTr.querySelector('th');
656
+ const topBorderCompensation = sourceRowIndex === 0 ? firstRowBorderCompensation : 0;
662
657
  if (rowHeader) {
663
- rowInnerHeight = (0, _element.innerHeight)(rowHeader);
658
+ rowCurrentHeight = rowHeightFn(rowHeader);
664
659
  } else {
665
- rowInnerHeight = (0, _element.innerHeight)(currentTr) - 1;
660
+ rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
666
661
  }
667
- if (!previousRowHeight && this.wtSettings.getSetting('defaultRowHeight') < rowInnerHeight || previousRowHeight < rowInnerHeight) {
668
- rowInnerHeight += 1;
669
- this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowInnerHeight;
662
+ if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
663
+ if (!borderBoxSizing) {
664
+ rowCurrentHeight += 1;
665
+ }
666
+ this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
670
667
  }
671
668
  }
672
669
  }
@@ -910,14 +907,6 @@ class Table {
910
907
  return this.columnUtils.getWidth(sourceColumn);
911
908
  }
912
909
 
913
- /**
914
- * @param {number} sourceColumn The physical column index.
915
- * @returns {number}
916
- */
917
- getStretchedColumnWidth(sourceColumn) {
918
- return this.columnUtils.getStretchedColumnWidth(sourceColumn);
919
- }
920
-
921
910
  /**
922
911
  * Checks if the table has defined size. It returns `true` when the table has width and height
923
912
  * set bigger than `0px`.
@@ -1,5 +1,7 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
+ import "core-js/modules/esnext.iterator.constructor.js";
4
+ import "core-js/modules/esnext.iterator.for-each.js";
3
5
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
7
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
@@ -111,7 +113,8 @@ class Table {
111
113
  TBODY: this.TBODY,
112
114
  rowUtils: this.rowUtils,
113
115
  columnUtils: this.columnUtils,
114
- cellRenderer: this.wtSettings.getSettingPure('cellRenderer')
116
+ cellRenderer: this.wtSettings.getSettingPure('cellRenderer'),
117
+ stylesHandler: this.dataAccessObject.stylesHandler
115
118
  });
116
119
  }
117
120
 
@@ -292,10 +295,7 @@ class Table {
292
295
  }
293
296
  this.resetOversizedRows();
294
297
  this.tableRenderer.setActiveOverlayName(this.name).setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();
295
- let workspaceWidth;
296
298
  if (this.isMaster) {
297
- workspaceWidth = this.dataAccessObject.workspaceWidth;
298
- wtViewport.containerWidth = null;
299
299
  this.markOversizedColumnHeaders();
300
300
  }
301
301
  this.adjustColumnHeaderHeights();
@@ -308,19 +308,6 @@ class Table {
308
308
  }
309
309
  wtOverlays.refresh(false);
310
310
  wtOverlays.applyToDOM();
311
- const hiderWidth = outerWidth(this.hider);
312
- const tableWidth = outerWidth(this.TABLE);
313
- if (hiderWidth !== 0 && tableWidth !== hiderWidth) {
314
- // Recalculate the column widths, if width changes made in the overlays removed the scrollbar, thus changing the viewport width.
315
- this.columnUtils.calculateWidths();
316
- this.tableRenderer.renderer.colGroup.render();
317
- }
318
- if (workspaceWidth !== wtViewport.getWorkspaceWidth()) {
319
- // workspace width changed though to shown/hidden vertical scrollbar. Let's reapply stretching
320
- wtViewport.containerWidth = null;
321
- this.columnUtils.calculateWidths();
322
- this.tableRenderer.renderer.colGroup.render();
323
- }
324
311
  this.wtSettings.getSetting('onDraw', true);
325
312
  } else if (this.is(CLONE_BOTTOM)) {
326
313
  this.dataAccessObject.cloneSource.wtOverlays.adjustElementsSize();
@@ -363,7 +350,7 @@ class Table {
363
350
  markIfOversizedColumnHeader(col) {
364
351
  const sourceColIndex = this.columnFilter.renderedToSource(col);
365
352
  let level = this.wtSettings.getSetting('columnHeaders').length;
366
- const defaultRowHeight = this.wtSettings.getSetting('defaultRowHeight');
353
+ const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
367
354
  let previousColHeaderHeight;
368
355
  let currentHeader;
369
356
  let currentHeaderHeight;
@@ -462,7 +449,7 @@ class Table {
462
449
  getCell(coords) {
463
450
  let row = coords.row;
464
451
  let column = coords.col;
465
- const hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column);
452
+ const hookResult = this.wtSettings.getSetting('onModifyGetCellCoords', row, column, !this.isMaster, 'render');
466
453
  if (hookResult && Array.isArray(hookResult)) {
467
454
  [row, column] = hookResult;
468
455
  }
@@ -515,9 +502,8 @@ class Table {
515
502
  } else {
516
503
  return parentElement.childNodes[renderedRowIndex];
517
504
  }
518
- } else {
519
- return false;
520
505
  }
506
+ return false;
521
507
  }
522
508
 
523
509
  /**
@@ -627,6 +613,10 @@ class Table {
627
613
  } else {
628
614
  col = this.columnFilter.visibleRowHeadedColumnToSourceColumn(col);
629
615
  }
616
+ const hookResult = this.wtSettings.getSetting('onModifyGetCoordsElement', row, col);
617
+ if (hookResult && Array.isArray(hookResult)) {
618
+ [row, col] = hookResult;
619
+ }
630
620
  return this.wot.createCellCoords(row, col);
631
621
  }
632
622
 
@@ -638,10 +628,14 @@ class Table {
638
628
  return;
639
629
  }
640
630
  let rowCount = this.TBODY.childNodes.length;
641
- const expectedTableHeight = rowCount * this.wtSettings.getSetting('defaultRowHeight');
631
+ const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
642
632
  const actualTableHeight = innerHeight(this.TBODY) - 1;
633
+ const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
634
+ const rowHeightFn = borderBoxSizing ? outerHeight : innerHeight;
635
+ const borderCompensation = borderBoxSizing ? 0 : 1;
636
+ const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
643
637
  let previousRowHeight;
644
- let rowInnerHeight;
638
+ let rowCurrentHeight;
645
639
  let sourceRowIndex;
646
640
  let currentTr;
647
641
  let rowHeader;
@@ -655,14 +649,17 @@ class Table {
655
649
  previousRowHeight = this.getRowHeight(sourceRowIndex);
656
650
  currentTr = this.getTrForRow(sourceRowIndex);
657
651
  rowHeader = currentTr.querySelector('th');
652
+ const topBorderCompensation = sourceRowIndex === 0 ? firstRowBorderCompensation : 0;
658
653
  if (rowHeader) {
659
- rowInnerHeight = innerHeight(rowHeader);
654
+ rowCurrentHeight = rowHeightFn(rowHeader);
660
655
  } else {
661
- rowInnerHeight = innerHeight(currentTr) - 1;
656
+ rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
662
657
  }
663
- if (!previousRowHeight && this.wtSettings.getSetting('defaultRowHeight') < rowInnerHeight || previousRowHeight < rowInnerHeight) {
664
- rowInnerHeight += 1;
665
- this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowInnerHeight;
658
+ if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
659
+ if (!borderBoxSizing) {
660
+ rowCurrentHeight += 1;
661
+ }
662
+ this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
666
663
  }
667
664
  }
668
665
  }
@@ -906,14 +903,6 @@ class Table {
906
903
  return this.columnUtils.getWidth(sourceColumn);
907
904
  }
908
905
 
909
- /**
910
- * @param {number} sourceColumn The physical column index.
911
- * @returns {number}
912
- */
913
- getStretchedColumnWidth(sourceColumn) {
914
- return this.columnUtils.getStretchedColumnWidth(sourceColumn);
915
- }
916
-
917
906
  /**
918
907
  * Checks if the table has defined size. It returns `true` when the table has width and height
919
908
  * set bigger than `0px`.
@@ -66,6 +66,7 @@
66
66
  * @property {Walkontable} cloneSource CloneSource.
67
67
  * @property {Walkontable} wot Wot.
68
68
  * @property {number} parentTableOffset ParentTableOffset.
69
+ * @property {StylesHandler} stylesHandler StylesHandler.
69
70
  * @property {number|null} startColumnRendered StartColumnRendered.
70
71
  * @property {number|null} startColumnVisible StartColumnVisible.
71
72
  * @property {number|null} endColumnRendered EndColumnRendered.
@@ -66,6 +66,7 @@
66
66
  * @property {Walkontable} cloneSource CloneSource.
67
67
  * @property {Walkontable} wot Wot.
68
68
  * @property {number} parentTableOffset ParentTableOffset.
69
+ * @property {StylesHandler} stylesHandler StylesHandler.
69
70
  * @property {number|null} startColumnRendered StartColumnRendered.
70
71
  * @property {number|null} startColumnVisible StartColumnVisible.
71
72
  * @property {number|null} endColumnRendered EndColumnRendered.
@@ -2,8 +2,6 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
- var _element = require("./../../../../helpers/dom/element");
6
- var _columnStretching = require("./columnStretching");
7
5
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
8
6
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
9
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); }
@@ -30,18 +28,8 @@ class ColumnUtils {
30
28
  * @type {Map<number, number>}
31
29
  */
32
30
  _defineProperty(this, "headerWidths", new Map());
33
- /**
34
- * @type {ColumnStretching}
35
- */
36
- _defineProperty(this, "stretching", void 0);
37
31
  this.dataAccessObject = dataAccessObject;
38
32
  this.wtSettings = wtSettings;
39
- this.stretching = new _columnStretching.ColumnStretching({
40
- totalColumns: () => this.wtSettings.getSetting('totalColumns'),
41
- stretchMode: () => this.wtSettings.getSetting('stretchH'),
42
- stretchingColumnWidthFn: (stretchedWidth, column) => this.wtSettings.getSetting('onBeforeStretchingColumnWidth', stretchedWidth, column),
43
- columnWidthFn: sourceCol => this.dataAccessObject.wtTable.getColumnWidth(sourceCol)
44
- });
45
33
  }
46
34
 
47
35
  /**
@@ -55,21 +43,6 @@ class ColumnUtils {
55
43
  return width;
56
44
  }
57
45
 
58
- /**
59
- * Returns stretched column width based on passed source index.
60
- *
61
- * @param {number} sourceIndex Column source index.
62
- * @returns {number}
63
- */
64
- getStretchedColumnWidth(sourceIndex) {
65
- let width = this.getWidth(sourceIndex);
66
- const stretchedWidth = this.stretching.getStretchedColumnWidth(sourceIndex, width);
67
- if (stretchedWidth) {
68
- width = stretchedWidth;
69
- }
70
- return width;
71
- }
72
-
73
46
  /**
74
47
  * Returns column header height based on passed header level.
75
48
  *
@@ -77,7 +50,7 @@ class ColumnUtils {
77
50
  * @returns {number}
78
51
  */
79
52
  getHeaderHeight(level) {
80
- let height = this.wtSettings.getSetting('defaultRowHeight');
53
+ let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
81
54
  const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
82
55
  if (oversizedHeight !== undefined) {
83
56
  height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
@@ -95,20 +68,6 @@ class ColumnUtils {
95
68
  return this.headerWidths.get(this.dataAccessObject.wtTable.columnFilter.sourceToRendered(sourceIndex));
96
69
  }
97
70
 
98
- /**
99
- * Refreshes the stretching column width by recalculating the widths of the columns.
100
- */
101
- refreshStretching() {
102
- const {
103
- wtTable,
104
- wtViewport,
105
- cloneSource
106
- } = this.dataAccessObject;
107
- const mainHolder = cloneSource ? cloneSource.wtTable.holder : wtTable.holder;
108
- const scrollbarCompensation = mainHolder.offsetHeight < mainHolder.scrollHeight ? (0, _element.getScrollbarWidth)() : 0;
109
- this.stretching.refreshStretching(wtViewport.getViewportWidth() - scrollbarCompensation);
110
- }
111
-
112
71
  /**
113
72
  * Calculates column header widths that can be retrieved from the cache.
114
73
  */
@@ -117,7 +76,6 @@ class ColumnUtils {
117
76
  wtSettings
118
77
  } = this;
119
78
  let rowHeaderWidthSetting = wtSettings.getSetting('rowHeaderWidth');
120
- this.refreshStretching();
121
79
  rowHeaderWidthSetting = wtSettings.getSetting('onModifyRowHeaderWidth', rowHeaderWidthSetting);
122
80
  if (rowHeaderWidthSetting !== null && rowHeaderWidthSetting !== undefined) {
123
81
  const rowHeadersCount = wtSettings.getSetting('rowHeaders').length;
@@ -2,8 +2,6 @@ import "core-js/modules/es.error.cause.js";
2
2
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  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); }
5
- import { getScrollbarWidth } from "./../../../../helpers/dom/element.mjs";
6
- import { ColumnStretching } from "./columnStretching.mjs";
7
5
  /**
8
6
  * Column utils class contains all necessary information about sizes of the columns.
9
7
  *
@@ -27,18 +25,8 @@ export default class ColumnUtils {
27
25
  * @type {Map<number, number>}
28
26
  */
29
27
  _defineProperty(this, "headerWidths", new Map());
30
- /**
31
- * @type {ColumnStretching}
32
- */
33
- _defineProperty(this, "stretching", void 0);
34
28
  this.dataAccessObject = dataAccessObject;
35
29
  this.wtSettings = wtSettings;
36
- this.stretching = new ColumnStretching({
37
- totalColumns: () => this.wtSettings.getSetting('totalColumns'),
38
- stretchMode: () => this.wtSettings.getSetting('stretchH'),
39
- stretchingColumnWidthFn: (stretchedWidth, column) => this.wtSettings.getSetting('onBeforeStretchingColumnWidth', stretchedWidth, column),
40
- columnWidthFn: sourceCol => this.dataAccessObject.wtTable.getColumnWidth(sourceCol)
41
- });
42
30
  }
43
31
 
44
32
  /**
@@ -52,21 +40,6 @@ export default class ColumnUtils {
52
40
  return width;
53
41
  }
54
42
 
55
- /**
56
- * Returns stretched column width based on passed source index.
57
- *
58
- * @param {number} sourceIndex Column source index.
59
- * @returns {number}
60
- */
61
- getStretchedColumnWidth(sourceIndex) {
62
- let width = this.getWidth(sourceIndex);
63
- const stretchedWidth = this.stretching.getStretchedColumnWidth(sourceIndex, width);
64
- if (stretchedWidth) {
65
- width = stretchedWidth;
66
- }
67
- return width;
68
- }
69
-
70
43
  /**
71
44
  * Returns column header height based on passed header level.
72
45
  *
@@ -74,7 +47,7 @@ export default class ColumnUtils {
74
47
  * @returns {number}
75
48
  */
76
49
  getHeaderHeight(level) {
77
- let height = this.wtSettings.getSetting('defaultRowHeight');
50
+ let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
78
51
  const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
79
52
  if (oversizedHeight !== undefined) {
80
53
  height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
@@ -92,20 +65,6 @@ export default class ColumnUtils {
92
65
  return this.headerWidths.get(this.dataAccessObject.wtTable.columnFilter.sourceToRendered(sourceIndex));
93
66
  }
94
67
 
95
- /**
96
- * Refreshes the stretching column width by recalculating the widths of the columns.
97
- */
98
- refreshStretching() {
99
- const {
100
- wtTable,
101
- wtViewport,
102
- cloneSource
103
- } = this.dataAccessObject;
104
- const mainHolder = cloneSource ? cloneSource.wtTable.holder : wtTable.holder;
105
- const scrollbarCompensation = mainHolder.offsetHeight < mainHolder.scrollHeight ? getScrollbarWidth() : 0;
106
- this.stretching.refreshStretching(wtViewport.getViewportWidth() - scrollbarCompensation);
107
- }
108
-
109
68
  /**
110
69
  * Calculates column header widths that can be retrieved from the cache.
111
70
  */
@@ -114,7 +73,6 @@ export default class ColumnUtils {
114
73
  wtSettings
115
74
  } = this;
116
75
  let rowHeaderWidthSetting = wtSettings.getSetting('rowHeaderWidth');
117
- this.refreshStretching();
118
76
  rowHeaderWidthSetting = wtSettings.getSetting('onModifyRowHeaderWidth', rowHeaderWidthSetting);
119
77
  if (rowHeaderWidthSetting !== null && rowHeaderWidthSetting !== undefined) {
120
78
  const rowHeadersCount = wtSettings.getSetting('rowHeaders').length;