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
@@ -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;