handsontable 14.4.0 → 14.5.0-next-7541a88-20240725

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 (467) hide show
  1. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.js +126 -0
  2. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +122 -0
  3. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +119 -0
  4. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +115 -0
  5. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +125 -0
  6. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +121 -0
  7. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +118 -0
  8. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +114 -0
  9. package/3rdparty/walkontable/src/calculator/{renderAllColumns.js → calculationType/renderedAllColumns.js} +33 -10
  10. package/3rdparty/walkontable/src/calculator/{renderAllColumns.mjs → calculationType/renderedAllColumns.mjs} +32 -9
  11. package/3rdparty/walkontable/src/calculator/{renderAllRows.js → calculationType/renderedAllRows.js} +33 -10
  12. package/3rdparty/walkontable/src/calculator/{renderAllRows.mjs → calculationType/renderedAllRows.mjs} +32 -9
  13. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +37 -0
  14. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +33 -0
  15. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +37 -0
  16. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +33 -0
  17. package/3rdparty/walkontable/src/calculator/index.js +18 -17
  18. package/3rdparty/walkontable/src/calculator/index.mjs +11 -6
  19. package/3rdparty/walkontable/src/calculator/viewportBase.js +92 -0
  20. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +88 -0
  21. package/3rdparty/walkontable/src/calculator/viewportColumns.js +52 -146
  22. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +52 -146
  23. package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -142
  24. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -142
  25. package/3rdparty/walkontable/src/cell/coords.js +3 -3
  26. package/3rdparty/walkontable/src/cell/coords.mjs +3 -3
  27. package/3rdparty/walkontable/src/cell/range.js +4 -4
  28. package/3rdparty/walkontable/src/cell/range.mjs +3 -3
  29. package/3rdparty/walkontable/src/core/_base.js +2 -2
  30. package/3rdparty/walkontable/src/core/_base.mjs +1 -1
  31. package/3rdparty/walkontable/src/core/clone.js +2 -2
  32. package/3rdparty/walkontable/src/core/clone.mjs +1 -1
  33. package/3rdparty/walkontable/src/core/core.js +17 -1
  34. package/3rdparty/walkontable/src/core/core.mjs +16 -0
  35. package/3rdparty/walkontable/src/event.js +2 -2
  36. package/3rdparty/walkontable/src/event.mjs +2 -2
  37. package/3rdparty/walkontable/src/facade/core.js +4 -1
  38. package/3rdparty/walkontable/src/facade/core.mjs +3 -0
  39. package/3rdparty/walkontable/src/filter/column.js +1 -1
  40. package/3rdparty/walkontable/src/filter/column.mjs +1 -1
  41. package/3rdparty/walkontable/src/filter/row.js +1 -1
  42. package/3rdparty/walkontable/src/filter/row.mjs +1 -1
  43. package/3rdparty/walkontable/src/index.js +3 -1
  44. package/3rdparty/walkontable/src/index.mjs +2 -2
  45. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  46. package/3rdparty/walkontable/src/overlay/_base.mjs +1 -1
  47. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  48. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  49. package/3rdparty/walkontable/src/overlay/bottomInlineStartCorner.js +1 -1
  50. package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -1
  51. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  52. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  53. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +2 -2
  54. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +1 -1
  55. package/3rdparty/walkontable/src/overlays.js +36 -4
  56. package/3rdparty/walkontable/src/overlays.mjs +36 -4
  57. package/3rdparty/walkontable/src/renderer/_base.js +2 -2
  58. package/3rdparty/walkontable/src/renderer/_base.mjs +1 -1
  59. package/3rdparty/walkontable/src/renderer/cells.js +2 -2
  60. package/3rdparty/walkontable/src/renderer/cells.mjs +1 -1
  61. package/3rdparty/walkontable/src/renderer/colGroup.js +1 -1
  62. package/3rdparty/walkontable/src/renderer/columnHeaders.js +1 -1
  63. package/3rdparty/walkontable/src/renderer/index.js +12 -1
  64. package/3rdparty/walkontable/src/renderer/index.mjs +11 -0
  65. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  66. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +1 -1
  67. package/3rdparty/walkontable/src/renderer/rows.js +2 -2
  68. package/3rdparty/walkontable/src/renderer/rows.mjs +1 -1
  69. package/3rdparty/walkontable/src/renderer/table.js +17 -2
  70. package/3rdparty/walkontable/src/renderer/table.mjs +17 -2
  71. package/3rdparty/walkontable/src/scroll.js +3 -3
  72. package/3rdparty/walkontable/src/scroll.mjs +3 -3
  73. package/3rdparty/walkontable/src/selection/index.js +1 -1
  74. package/3rdparty/walkontable/src/selection/manager.js +4 -4
  75. package/3rdparty/walkontable/src/selection/manager.mjs +3 -3
  76. package/3rdparty/walkontable/src/selection/scanner.js +3 -3
  77. package/3rdparty/walkontable/src/selection/scanner.mjs +3 -3
  78. package/3rdparty/walkontable/src/selection/selection.js +1 -1
  79. package/3rdparty/walkontable/src/settings.js +6 -2
  80. package/3rdparty/walkontable/src/settings.mjs +6 -2
  81. package/3rdparty/walkontable/src/table/bottom.js +1 -1
  82. package/3rdparty/walkontable/src/table/bottomInlineStartCorner.js +1 -1
  83. package/3rdparty/walkontable/src/table/inlineStart.js +1 -1
  84. package/3rdparty/walkontable/src/table/master.js +1 -1
  85. package/3rdparty/walkontable/src/table/top.js +1 -1
  86. package/3rdparty/walkontable/src/table/topInlineStartCorner.js +1 -1
  87. package/3rdparty/walkontable/src/table.js +8 -14
  88. package/3rdparty/walkontable/src/table.mjs +7 -13
  89. package/3rdparty/walkontable/src/utils/column.js +3 -2
  90. package/3rdparty/walkontable/src/utils/column.mjs +3 -2
  91. package/3rdparty/walkontable/src/utils/columnStretching.js +13 -22
  92. package/3rdparty/walkontable/src/utils/columnStretching.mjs +13 -22
  93. package/3rdparty/walkontable/src/utils/nodesPool.js +1 -1
  94. package/3rdparty/walkontable/src/utils/nodesPool.mjs +1 -1
  95. package/3rdparty/walkontable/src/utils/orderView/index.js +1 -1
  96. package/3rdparty/walkontable/src/utils/orderView/sharedView.js +1 -1
  97. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  98. package/3rdparty/walkontable/src/utils/orderView/view.mjs +1 -1
  99. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +1 -1
  100. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +1 -1
  101. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +2 -2
  102. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +1 -1
  103. package/3rdparty/walkontable/src/utils/row.js +17 -1
  104. package/3rdparty/walkontable/src/utils/row.mjs +17 -1
  105. package/3rdparty/walkontable/src/viewport.js +35 -46
  106. package/3rdparty/walkontable/src/viewport.mjs +36 -47
  107. package/CHANGELOG.md +27 -1
  108. package/base.js +3 -3
  109. package/base.mjs +2 -2
  110. package/cellTypes/registry.js +1 -1
  111. package/common.d.ts +3 -0
  112. package/core.d.ts +2 -0
  113. package/core.js +37 -32
  114. package/core.mjs +37 -32
  115. package/dataMap/dataMap.js +1 -1
  116. package/dataMap/dataMap.mjs +1 -1
  117. package/dataMap/dataSource.js +1 -1
  118. package/dataMap/dataSource.mjs +1 -1
  119. package/dataMap/index.js +1 -1
  120. package/dataMap/metaManager/index.js +1 -1
  121. package/dataMap/metaManager/lazyFactoryMap.js +1 -1
  122. package/dataMap/metaManager/lazyFactoryMap.mjs +1 -1
  123. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  124. package/dataMap/metaManager/metaLayers/cellMeta.mjs +1 -1
  125. package/dataMap/metaManager/metaLayers/columnMeta.js +2 -2
  126. package/dataMap/metaManager/metaLayers/columnMeta.mjs +1 -1
  127. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -2
  128. package/dataMap/metaManager/metaLayers/globalMeta.mjs +1 -1
  129. package/dataMap/metaManager/metaLayers/tableMeta.js +1 -1
  130. package/dataMap/metaManager/metaLayers/tableMeta.mjs +1 -1
  131. package/dataMap/metaManager/metaSchema.js +25 -0
  132. package/dataMap/metaManager/metaSchema.mjs +25 -0
  133. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -2
  134. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +1 -1
  135. package/dataMap/metaManager/mods/extendMetaProperties.js +3 -3
  136. package/dataMap/metaManager/mods/extendMetaProperties.mjs +3 -3
  137. package/dataMap/replaceData.js +1 -1
  138. package/dist/handsontable.css +134 -88
  139. package/dist/handsontable.full.css +134 -88
  140. package/dist/handsontable.full.js +4084 -2863
  141. package/dist/handsontable.full.min.css +7 -7
  142. package/dist/handsontable.full.min.js +153 -153
  143. package/dist/handsontable.js +4074 -2801
  144. package/dist/handsontable.min.css +6 -6
  145. package/dist/handsontable.min.js +33 -33
  146. package/dist/languages/all.js +3 -3
  147. package/dist/languages/ar-AR.js +3 -3
  148. package/dist/languages/cs-CZ.js +3 -3
  149. package/dist/languages/de-CH.js +3 -3
  150. package/dist/languages/de-DE.js +3 -3
  151. package/dist/languages/en-US.js +3 -3
  152. package/dist/languages/es-MX.js +3 -3
  153. package/dist/languages/fr-FR.js +3 -3
  154. package/dist/languages/hr-HR.js +3 -3
  155. package/dist/languages/it-IT.js +3 -3
  156. package/dist/languages/ja-JP.js +3 -3
  157. package/dist/languages/ko-KR.js +3 -3
  158. package/dist/languages/lv-LV.js +3 -3
  159. package/dist/languages/nb-NO.js +3 -3
  160. package/dist/languages/nl-NL.js +3 -3
  161. package/dist/languages/pl-PL.js +3 -3
  162. package/dist/languages/pt-BR.js +3 -3
  163. package/dist/languages/ru-RU.js +3 -3
  164. package/dist/languages/sr-SP.js +3 -3
  165. package/dist/languages/zh-CN.js +3 -3
  166. package/dist/languages/zh-TW.js +3 -3
  167. package/editorManager.js +4 -4
  168. package/editorManager.mjs +3 -3
  169. package/editors/autocompleteEditor/autocompleteEditor.js +3 -3
  170. package/editors/autocompleteEditor/autocompleteEditor.mjs +3 -3
  171. package/editors/baseEditor/baseEditor.js +2 -2
  172. package/editors/baseEditor/baseEditor.mjs +1 -1
  173. package/editors/dateEditor/dateEditor.js +2 -2
  174. package/editors/dateEditor/dateEditor.mjs +1 -1
  175. package/editors/dropdownEditor/dropdownEditor.js +1 -1
  176. package/editors/registry.js +1 -1
  177. package/editors/textEditor/textEditor.js +2 -2
  178. package/editors/textEditor/textEditor.mjs +1 -1
  179. package/eventManager.js +1 -1
  180. package/eventManager.mjs +1 -1
  181. package/focusManager.js +3 -3
  182. package/focusManager.mjs +3 -3
  183. package/helpers/dom/event.d.ts +1 -0
  184. package/helpers/dom/event.js +11 -0
  185. package/helpers/dom/event.mjs +10 -0
  186. package/helpers/mixed.js +3 -3
  187. package/helpers/mixed.mjs +2 -2
  188. package/helpers/string.js +1 -1
  189. package/i18n/languages/index.js +1 -1
  190. package/i18n/phraseFormatters/index.js +1 -1
  191. package/i18n/registry.js +1 -1
  192. package/index.js +1 -1
  193. package/languages/all.js +3 -3
  194. package/languages/ar-AR.js +3 -3
  195. package/languages/cs-CZ.js +3 -3
  196. package/languages/de-CH.js +3 -3
  197. package/languages/de-DE.js +3 -3
  198. package/languages/en-US.js +3 -3
  199. package/languages/es-MX.js +3 -3
  200. package/languages/fr-FR.js +3 -3
  201. package/languages/hr-HR.js +3 -3
  202. package/languages/index.js +3 -3
  203. package/languages/it-IT.js +3 -3
  204. package/languages/ja-JP.js +3 -3
  205. package/languages/ko-KR.js +3 -3
  206. package/languages/lv-LV.js +3 -3
  207. package/languages/nb-NO.js +3 -3
  208. package/languages/nl-NL.js +3 -3
  209. package/languages/pl-PL.js +3 -3
  210. package/languages/pt-BR.js +3 -3
  211. package/languages/ru-RU.js +3 -3
  212. package/languages/sr-SP.js +3 -3
  213. package/languages/zh-CN.js +3 -3
  214. package/languages/zh-TW.js +3 -3
  215. package/package.json +1 -5
  216. package/pluginHooks.d.ts +3 -1
  217. package/pluginHooks.js +12 -1
  218. package/pluginHooks.mjs +12 -1
  219. package/plugins/autoColumnSize/autoColumnSize.d.ts +1 -1
  220. package/plugins/autoColumnSize/autoColumnSize.js +124 -124
  221. package/plugins/autoColumnSize/autoColumnSize.mjs +124 -124
  222. package/plugins/autoRowSize/autoRowSize.d.ts +2 -1
  223. package/plugins/autoRowSize/autoRowSize.js +162 -100
  224. package/plugins/autoRowSize/autoRowSize.mjs +161 -99
  225. package/plugins/autofill/autofill.js +4 -4
  226. package/plugins/autofill/autofill.mjs +3 -3
  227. package/plugins/base/base.js +5 -5
  228. package/plugins/base/base.mjs +4 -4
  229. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +4 -4
  230. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +3 -3
  231. package/plugins/collapsibleColumns/collapsibleColumns.js +4 -4
  232. package/plugins/collapsibleColumns/collapsibleColumns.mjs +4 -4
  233. package/plugins/columnSorting/columnSorting.js +6 -5
  234. package/plugins/columnSorting/columnSorting.mjs +5 -4
  235. package/plugins/columnSorting/columnStatesManager.js +1 -1
  236. package/plugins/columnSorting/columnStatesManager.mjs +1 -1
  237. package/plugins/columnSorting/sortService/registry.js +1 -1
  238. package/plugins/columnSorting/utils.js +1 -1
  239. package/plugins/columnSummary/columnSummary.d.ts +1 -1
  240. package/plugins/columnSummary/columnSummary.js +4 -4
  241. package/plugins/columnSummary/columnSummary.mjs +3 -3
  242. package/plugins/columnSummary/endpoints.js +1 -1
  243. package/plugins/columnSummary/endpoints.mjs +1 -1
  244. package/plugins/comments/commentEditor.js +74 -39
  245. package/plugins/comments/commentEditor.mjs +73 -39
  246. package/plugins/comments/comments.js +25 -44
  247. package/plugins/comments/comments.mjs +25 -44
  248. package/plugins/comments/displaySwitch.js +2 -2
  249. package/plugins/comments/displaySwitch.mjs +1 -1
  250. package/plugins/comments/editorResizeObserver.js +100 -0
  251. package/plugins/comments/editorResizeObserver.mjs +95 -0
  252. package/plugins/contextMenu/commandExecutor.js +1 -1
  253. package/plugins/contextMenu/commandExecutor.mjs +1 -1
  254. package/plugins/contextMenu/contextMenu.js +4 -4
  255. package/plugins/contextMenu/contextMenu.mjs +3 -3
  256. package/plugins/contextMenu/itemsFactory.js +1 -1
  257. package/plugins/contextMenu/itemsFactory.mjs +1 -1
  258. package/plugins/contextMenu/menu/cursor.js +1 -1
  259. package/plugins/contextMenu/menu/cursor.mjs +1 -1
  260. package/plugins/contextMenu/menu/menu.js +5 -4
  261. package/plugins/contextMenu/menu/menu.mjs +4 -3
  262. package/plugins/contextMenu/menu/positioner.js +2 -2
  263. package/plugins/contextMenu/menu/positioner.mjs +2 -2
  264. package/plugins/copyPaste/copyPaste.js +5 -5
  265. package/plugins/copyPaste/copyPaste.mjs +4 -4
  266. package/plugins/copyPaste/copyableRanges.js +3 -3
  267. package/plugins/copyPaste/copyableRanges.mjs +3 -3
  268. package/plugins/copyPaste/pasteEvent.js +1 -1
  269. package/plugins/customBorders/contextMenuItem/index.js +1 -1
  270. package/plugins/customBorders/customBorders.js +3 -3
  271. package/plugins/customBorders/customBorders.mjs +3 -3
  272. package/plugins/dragToScroll/dragToScroll.js +4 -4
  273. package/plugins/dragToScroll/dragToScroll.mjs +4 -4
  274. package/plugins/dropdownMenu/dropdownMenu.js +5 -5
  275. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -4
  276. package/plugins/exportFile/dataProvider.js +1 -1
  277. package/plugins/exportFile/dataProvider.mjs +1 -1
  278. package/plugins/exportFile/exportFile.js +1 -1
  279. package/plugins/exportFile/typeFactory.js +1 -1
  280. package/plugins/exportFile/types/_base.js +1 -1
  281. package/plugins/exportFile/types/_base.mjs +1 -1
  282. package/plugins/exportFile/types/csv.js +1 -1
  283. package/plugins/filters/component/_base.js +2 -2
  284. package/plugins/filters/component/_base.mjs +1 -1
  285. package/plugins/filters/component/actionBar.js +3 -3
  286. package/plugins/filters/component/actionBar.mjs +3 -3
  287. package/plugins/filters/component/condition.js +3 -3
  288. package/plugins/filters/component/condition.mjs +3 -3
  289. package/plugins/filters/component/operators.js +3 -3
  290. package/plugins/filters/component/operators.mjs +3 -3
  291. package/plugins/filters/component/value.js +3 -3
  292. package/plugins/filters/component/value.mjs +3 -3
  293. package/plugins/filters/condition/date/after.js +1 -1
  294. package/plugins/filters/condition/date/before.js +1 -1
  295. package/plugins/filters/condition/date/today.js +1 -1
  296. package/plugins/filters/condition/date/tomorrow.js +1 -1
  297. package/plugins/filters/condition/date/yesterday.js +1 -1
  298. package/plugins/filters/conditionCollection.js +2 -2
  299. package/plugins/filters/conditionCollection.mjs +1 -1
  300. package/plugins/filters/conditionUpdateObserver.js +4 -4
  301. package/plugins/filters/conditionUpdateObserver.mjs +3 -3
  302. package/plugins/filters/dataFilter.js +1 -1
  303. package/plugins/filters/dataFilter.mjs +1 -1
  304. package/plugins/filters/filters.js +5 -5
  305. package/plugins/filters/filters.mjs +4 -4
  306. package/plugins/filters/ui/_base.js +2 -2
  307. package/plugins/filters/ui/_base.mjs +1 -1
  308. package/plugins/filters/ui/input.js +3 -3
  309. package/plugins/filters/ui/input.mjs +3 -3
  310. package/plugins/filters/ui/link.js +2 -2
  311. package/plugins/filters/ui/link.mjs +2 -2
  312. package/plugins/filters/ui/multipleSelect.js +3 -3
  313. package/plugins/filters/ui/multipleSelect.mjs +3 -3
  314. package/plugins/filters/ui/radioInput.js +2 -2
  315. package/plugins/filters/ui/radioInput.mjs +2 -2
  316. package/plugins/filters/ui/select.js +3 -3
  317. package/plugins/filters/ui/select.mjs +3 -3
  318. package/plugins/formulas/engine/register.js +1 -1
  319. package/plugins/formulas/formulas.js +7 -7
  320. package/plugins/formulas/formulas.mjs +6 -6
  321. package/plugins/formulas/indexSyncer/axisSyncer.js +2 -2
  322. package/plugins/formulas/indexSyncer/axisSyncer.mjs +2 -2
  323. package/plugins/formulas/indexSyncer/index.js +3 -3
  324. package/plugins/formulas/indexSyncer/index.mjs +2 -2
  325. package/plugins/formulas/utils.js +1 -1
  326. package/plugins/hiddenColumns/hiddenColumns.js +4 -4
  327. package/plugins/hiddenColumns/hiddenColumns.mjs +3 -3
  328. package/plugins/hiddenRows/hiddenRows.js +4 -4
  329. package/plugins/hiddenRows/hiddenRows.mjs +3 -3
  330. package/plugins/manualColumnFreeze/manualColumnFreeze.js +4 -4
  331. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +3 -3
  332. package/plugins/manualColumnMove/manualColumnMove.js +4 -4
  333. package/plugins/manualColumnMove/manualColumnMove.mjs +3 -3
  334. package/plugins/manualColumnMove/ui/_base.js +1 -1
  335. package/plugins/manualColumnMove/ui/_base.mjs +1 -1
  336. package/plugins/manualColumnMove/ui/backlight.js +1 -1
  337. package/plugins/manualColumnMove/ui/guideline.js +1 -1
  338. package/plugins/manualColumnResize/manualColumnResize.js +3 -3
  339. package/plugins/manualColumnResize/manualColumnResize.mjs +3 -3
  340. package/plugins/manualRowMove/manualRowMove.js +4 -4
  341. package/plugins/manualRowMove/manualRowMove.mjs +3 -3
  342. package/plugins/manualRowMove/ui/_base.js +1 -1
  343. package/plugins/manualRowMove/ui/_base.mjs +1 -1
  344. package/plugins/manualRowMove/ui/backlight.js +1 -1
  345. package/plugins/manualRowMove/ui/guideline.js +1 -1
  346. package/plugins/manualRowResize/manualRowResize.js +4 -4
  347. package/plugins/manualRowResize/manualRowResize.mjs +5 -5
  348. package/plugins/mergeCells/calculations/autofill.js +2 -2
  349. package/plugins/mergeCells/calculations/autofill.mjs +2 -2
  350. package/plugins/mergeCells/calculations/selection.js +1 -1
  351. package/plugins/mergeCells/calculations/selection.mjs +1 -1
  352. package/plugins/mergeCells/cellCoords.js +81 -24
  353. package/plugins/mergeCells/cellCoords.mjs +81 -24
  354. package/plugins/mergeCells/cellsCollection.js +167 -91
  355. package/plugins/mergeCells/cellsCollection.mjs +166 -90
  356. package/plugins/mergeCells/contextMenuItem/toggleMerge.js +1 -1
  357. package/plugins/mergeCells/focusOrder.js +4 -4
  358. package/plugins/mergeCells/focusOrder.mjs +3 -3
  359. package/plugins/mergeCells/mergeCells.js +171 -122
  360. package/plugins/mergeCells/mergeCells.mjs +171 -122
  361. package/plugins/mergeCells/renderer.js +74 -0
  362. package/plugins/mergeCells/renderer.mjs +70 -0
  363. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -1
  364. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -1
  365. package/plugins/multiColumnSorting/utils.js +1 -1
  366. package/plugins/multiColumnSorting/utils.mjs +1 -1
  367. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +1 -1
  368. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +1 -1
  369. package/plugins/nestedHeaders/nestedHeaders.d.ts +1 -0
  370. package/plugins/nestedHeaders/nestedHeaders.js +20 -9
  371. package/plugins/nestedHeaders/nestedHeaders.mjs +20 -9
  372. package/plugins/nestedHeaders/stateManager/headersTree.js +3 -3
  373. package/plugins/nestedHeaders/stateManager/headersTree.mjs +2 -2
  374. package/plugins/nestedHeaders/stateManager/index.js +3 -3
  375. package/plugins/nestedHeaders/stateManager/index.mjs +2 -2
  376. package/plugins/nestedHeaders/stateManager/settingsNormalizer.js +5 -1
  377. package/plugins/nestedHeaders/stateManager/settingsNormalizer.mjs +5 -1
  378. package/plugins/nestedHeaders/stateManager/sourceSettings.js +2 -2
  379. package/plugins/nestedHeaders/stateManager/sourceSettings.mjs +2 -2
  380. package/plugins/nestedHeaders/stateManager/utils.js +6 -2
  381. package/plugins/nestedHeaders/stateManager/utils.mjs +6 -2
  382. package/plugins/nestedHeaders/utils/ghostTable.js +1 -1
  383. package/plugins/nestedHeaders/utils/ghostTable.mjs +1 -1
  384. package/plugins/nestedRows/data/dataManager.js +1 -1
  385. package/plugins/nestedRows/data/dataManager.mjs +1 -1
  386. package/plugins/nestedRows/nestedRows.js +5 -5
  387. package/plugins/nestedRows/nestedRows.mjs +4 -4
  388. package/plugins/nestedRows/ui/_base.js +1 -1
  389. package/plugins/nestedRows/ui/_base.mjs +1 -1
  390. package/plugins/nestedRows/ui/collapsing.js +1 -1
  391. package/plugins/nestedRows/ui/contextMenu.js +4 -4
  392. package/plugins/nestedRows/ui/contextMenu.mjs +3 -3
  393. package/plugins/nestedRows/ui/headers.js +1 -1
  394. package/plugins/nestedRows/utils/rowMoveController.js +1 -1
  395. package/plugins/nestedRows/utils/rowMoveController.mjs +1 -1
  396. package/plugins/persistentState/persistentState.js +2 -2
  397. package/plugins/persistentState/persistentState.mjs +1 -1
  398. package/plugins/persistentState/storage.js +1 -1
  399. package/plugins/persistentState/storage.mjs +1 -1
  400. package/plugins/search/search.js +3 -3
  401. package/plugins/search/search.mjs +3 -3
  402. package/plugins/touchScroll/touchScroll.js +3 -3
  403. package/plugins/touchScroll/touchScroll.mjs +3 -3
  404. package/plugins/trimRows/trimRows.js +3 -3
  405. package/plugins/trimRows/trimRows.mjs +3 -3
  406. package/plugins/undoRedo/undoRedo.js +38 -1
  407. package/plugins/undoRedo/undoRedo.mjs +37 -0
  408. package/renderers/autocompleteRenderer/autocompleteRenderer.js +1 -1
  409. package/renderers/checkboxRenderer/checkboxRenderer.js +1 -1
  410. package/renderers/numericRenderer/numericRenderer.js +1 -1
  411. package/renderers/registry.js +1 -1
  412. package/selection/highlight/highlight.js +3 -3
  413. package/selection/highlight/highlight.mjs +3 -3
  414. package/selection/highlight/types/activeHeader.js +1 -1
  415. package/selection/highlight/types/area.js +1 -1
  416. package/selection/highlight/types/areaLayered.js +1 -1
  417. package/selection/highlight/types/column.js +1 -1
  418. package/selection/highlight/types/customSelection.js +1 -1
  419. package/selection/highlight/types/fill.js +1 -1
  420. package/selection/highlight/types/focus.js +1 -1
  421. package/selection/highlight/types/header.js +1 -1
  422. package/selection/highlight/types/row.js +1 -1
  423. package/selection/highlight/visualSelection.js +1 -1
  424. package/selection/highlight/visualSelection.mjs +1 -1
  425. package/selection/index.js +1 -1
  426. package/selection/range.js +1 -1
  427. package/selection/range.mjs +1 -1
  428. package/selection/selection.js +8 -4
  429. package/selection/selection.mjs +7 -3
  430. package/selection/transformation.js +14 -4
  431. package/selection/transformation.mjs +13 -3
  432. package/settings.d.ts +1 -0
  433. package/shortcuts/utils.js +18 -27
  434. package/shortcuts/utils.mjs +18 -27
  435. package/tableView.js +126 -28
  436. package/tableView.mjs +125 -27
  437. package/translations/changesObservable/observable.js +2 -2
  438. package/translations/changesObservable/observable.mjs +2 -2
  439. package/translations/changesObservable/observer.js +3 -3
  440. package/translations/changesObservable/observer.mjs +2 -2
  441. package/translations/indexMapper.js +2 -2
  442. package/translations/indexMapper.mjs +1 -1
  443. package/translations/mapCollections/aggregatedCollection.js +1 -1
  444. package/translations/mapCollections/aggregatedCollection.mjs +1 -1
  445. package/translations/mapCollections/mapCollection.js +2 -2
  446. package/translations/mapCollections/mapCollection.mjs +1 -1
  447. package/translations/maps/indexMap.js +2 -2
  448. package/translations/maps/indexMap.mjs +1 -1
  449. package/translations/maps/linkedPhysicalIndexToValueMap.js +1 -1
  450. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +1 -1
  451. package/utils/dataStructures/linkedList.js +1 -1
  452. package/utils/dataStructures/linkedList.mjs +1 -1
  453. package/utils/dataStructures/tree.js +1 -1
  454. package/utils/dataStructures/tree.mjs +1 -1
  455. package/utils/ghostTable.js +1 -1
  456. package/utils/ghostTable.mjs +1 -1
  457. package/utils/interval.js +4 -4
  458. package/utils/interval.mjs +4 -4
  459. package/utils/samplesGenerator.js +1 -1
  460. package/utils/samplesGenerator.mjs +1 -1
  461. package/validators/dateValidator/dateValidator.js +1 -1
  462. package/validators/registry.js +1 -1
  463. package/validators/timeValidator/timeValidator.js +1 -1
  464. package/3rdparty/walkontable/src/calculator/constants.js +0 -26
  465. package/3rdparty/walkontable/src/calculator/constants.mjs +0 -23
  466. package/plugins/mergeCells/utils.js +0 -28
  467. package/plugins/mergeCells/utils.mjs +0 -24
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _partiallyVisibleRows = require("./partiallyVisibleRows");
5
+ /**
6
+ * @class RenderedRowsCalculationType
7
+ */
8
+ class RenderedRowsCalculationType extends _partiallyVisibleRows.PartiallyVisibleRowsCalculationType {
9
+ /**
10
+ * Finalizes the calculation.
11
+ *
12
+ * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.
13
+ */
14
+ finalize(viewportCalculator) {
15
+ var _startPositions$this$;
16
+ super.finalize(viewportCalculator);
17
+ const {
18
+ overrideFn,
19
+ totalRows,
20
+ startPositions
21
+ } = viewportCalculator;
22
+ if (this.startRow !== null && typeof overrideFn === 'function') {
23
+ overrideFn(this);
24
+ }
25
+ if (this.startRow < 0) {
26
+ this.startRow = 0;
27
+ }
28
+ this.startPosition = (_startPositions$this$ = startPositions[this.startRow]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;
29
+ if (totalRows < this.endRow) {
30
+ this.endRow = totalRows - 1;
31
+ }
32
+ if (this.startRow !== null) {
33
+ this.count = this.endRow - this.startRow + 1;
34
+ }
35
+ }
36
+ }
37
+ exports.RenderedRowsCalculationType = RenderedRowsCalculationType;
@@ -0,0 +1,33 @@
1
+ import { PartiallyVisibleRowsCalculationType } from "./partiallyVisibleRows.mjs";
2
+ /**
3
+ * @class RenderedRowsCalculationType
4
+ */
5
+ export class RenderedRowsCalculationType extends PartiallyVisibleRowsCalculationType {
6
+ /**
7
+ * Finalizes the calculation.
8
+ *
9
+ * @param {ViewportRowsCalculator} viewportCalculator The viewport calculator object.
10
+ */
11
+ finalize(viewportCalculator) {
12
+ var _startPositions$this$;
13
+ super.finalize(viewportCalculator);
14
+ const {
15
+ overrideFn,
16
+ totalRows,
17
+ startPositions
18
+ } = viewportCalculator;
19
+ if (this.startRow !== null && typeof overrideFn === 'function') {
20
+ overrideFn(this);
21
+ }
22
+ if (this.startRow < 0) {
23
+ this.startRow = 0;
24
+ }
25
+ this.startPosition = (_startPositions$this$ = startPositions[this.startRow]) !== null && _startPositions$this$ !== void 0 ? _startPositions$this$ : null;
26
+ if (totalRows < this.endRow) {
27
+ this.endRow = totalRows - 1;
28
+ }
29
+ if (this.startRow !== null) {
30
+ this.count = this.endRow - this.startRow + 1;
31
+ }
32
+ }
33
+ }
@@ -1,24 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- var _exportNames = {
5
- RenderAllColumnsCalculator: true,
6
- RenderAllRowsCalculator: true,
7
- ViewportColumnsCalculator: true,
8
- ViewportRowsCalculator: true
9
- };
10
- var _renderAllColumns = require("./renderAllColumns");
11
- exports.RenderAllColumnsCalculator = _renderAllColumns.RenderAllColumnsCalculator;
12
- var _renderAllRows = require("./renderAllRows");
13
- exports.RenderAllRowsCalculator = _renderAllRows.RenderAllRowsCalculator;
4
+ var _fullyVisibleColumns = require("./calculationType/fullyVisibleColumns");
5
+ exports.FullyVisibleColumnsCalculationType = _fullyVisibleColumns.FullyVisibleColumnsCalculationType;
6
+ var _fullyVisibleRows = require("./calculationType/fullyVisibleRows");
7
+ exports.FullyVisibleRowsCalculationType = _fullyVisibleRows.FullyVisibleRowsCalculationType;
8
+ var _partiallyVisibleColumns = require("./calculationType/partiallyVisibleColumns");
9
+ exports.PartiallyVisibleColumnsCalculationType = _partiallyVisibleColumns.PartiallyVisibleColumnsCalculationType;
10
+ var _partiallyVisibleRows = require("./calculationType/partiallyVisibleRows");
11
+ exports.PartiallyVisibleRowsCalculationType = _partiallyVisibleRows.PartiallyVisibleRowsCalculationType;
12
+ var _renderedAllColumns = require("./calculationType/renderedAllColumns");
13
+ exports.RenderedAllColumnsCalculationType = _renderedAllColumns.RenderedAllColumnsCalculationType;
14
+ var _renderedAllRows = require("./calculationType/renderedAllRows");
15
+ exports.RenderedAllRowsCalculationType = _renderedAllRows.RenderedAllRowsCalculationType;
16
+ var _renderedColumns = require("./calculationType/renderedColumns");
17
+ exports.RenderedColumnsCalculationType = _renderedColumns.RenderedColumnsCalculationType;
18
+ var _renderedRows = require("./calculationType/renderedRows");
19
+ exports.RenderedRowsCalculationType = _renderedRows.RenderedRowsCalculationType;
14
20
  var _viewportColumns = require("./viewportColumns");
15
21
  exports.ViewportColumnsCalculator = _viewportColumns.ViewportColumnsCalculator;
22
+ exports.DEFAULT_COLUMN_WIDTH = _viewportColumns.DEFAULT_WIDTH;
16
23
  var _viewportRows = require("./viewportRows");
17
24
  exports.ViewportRowsCalculator = _viewportRows.ViewportRowsCalculator;
18
- var _constants = require("./constants");
19
- Object.keys(_constants).forEach(function (key) {
20
- if (key === "default" || key === "__esModule") return;
21
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
22
- if (key in exports && exports[key] === _constants[key]) return;
23
- exports[key] = _constants[key];
24
- });
25
+ exports.DEFAULT_ROW_HEIGHT = _viewportRows.DEFAULT_HEIGHT;
@@ -1,6 +1,11 @@
1
- import { RenderAllColumnsCalculator } from "./renderAllColumns.mjs";
2
- import { RenderAllRowsCalculator } from "./renderAllRows.mjs";
3
- import { ViewportColumnsCalculator } from "./viewportColumns.mjs";
4
- import { ViewportRowsCalculator } from "./viewportRows.mjs";
5
- export * from "./constants.mjs";
6
- export { RenderAllColumnsCalculator, RenderAllRowsCalculator, ViewportColumnsCalculator, ViewportRowsCalculator };
1
+ import { FullyVisibleColumnsCalculationType } from "./calculationType/fullyVisibleColumns.mjs";
2
+ import { FullyVisibleRowsCalculationType } from "./calculationType/fullyVisibleRows.mjs";
3
+ import { PartiallyVisibleColumnsCalculationType } from "./calculationType/partiallyVisibleColumns.mjs";
4
+ import { PartiallyVisibleRowsCalculationType } from "./calculationType/partiallyVisibleRows.mjs";
5
+ import { RenderedAllColumnsCalculationType } from "./calculationType/renderedAllColumns.mjs";
6
+ import { RenderedAllRowsCalculationType } from "./calculationType/renderedAllRows.mjs";
7
+ import { RenderedColumnsCalculationType } from "./calculationType/renderedColumns.mjs";
8
+ import { RenderedRowsCalculationType } from "./calculationType/renderedRows.mjs";
9
+ import { ViewportColumnsCalculator, DEFAULT_WIDTH } from "./viewportColumns.mjs";
10
+ import { ViewportRowsCalculator, DEFAULT_HEIGHT } from "./viewportRows.mjs";
11
+ export { DEFAULT_HEIGHT as DEFAULT_ROW_HEIGHT, DEFAULT_WIDTH as DEFAULT_COLUMN_WIDTH, FullyVisibleColumnsCalculationType, FullyVisibleRowsCalculationType, PartiallyVisibleColumnsCalculationType, PartiallyVisibleRowsCalculationType, RenderedAllColumnsCalculationType, RenderedAllRowsCalculationType, RenderedColumnsCalculationType, RenderedRowsCalculationType, ViewportColumnsCalculator, ViewportRowsCalculator };
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ require("core-js/modules/es.error.cause.js");
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; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
7
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
+ /**
9
+ * @typedef {object} ColumnsCalculationType
10
+ * @property {number | null} startColumn The column index of the first column in the viewport.
11
+ * @property {number | null} endColumn The column index of the last column in the viewport.
12
+ * @property {number} count Total number of columns.
13
+ * @property {number | null} startPosition Position of the first fully column (in px).
14
+ * @property {boolean} isVisibleInTrimmingContainer Determines if the viewport is visible in the trimming container.
15
+ */
16
+ /**
17
+ * @typedef {object} RowsCalculationType
18
+ * @property {number | null} startRow The row index of the first row in the viewport.
19
+ * @property {number | null} endRow The row index of the last row in the viewport.
20
+ * @property {number} count Total number of rows.
21
+ * @property {number | null} startPosition Position of the first fully row (in px).
22
+ * @property {boolean} isVisibleInTrimmingContainer Determines if the viewport is visible in the trimming container.
23
+ */
24
+ /**
25
+ * @class ViewportBaseCalculator
26
+ */
27
+ class ViewportBaseCalculator {
28
+ constructor(calculationTypes) {
29
+ /**
30
+ * The calculation types to be performed.
31
+ *
32
+ * @type {Array}
33
+ */
34
+ _defineProperty(this, "calculationTypes", []);
35
+ /**
36
+ * The calculation results.
37
+ *
38
+ * @type {Map<string, ColumnsCalculationType | RowsCalculationType>}
39
+ */
40
+ _defineProperty(this, "calculationResults", new Map());
41
+ this.calculationTypes = calculationTypes;
42
+ }
43
+
44
+ /**
45
+ * Initializes all calculators (triggers all calculators before calculating the rows/columns sizes).
46
+ *
47
+ * @param {*} context The context object (rows or columns viewport calculator).
48
+ */
49
+ _initialize(context) {
50
+ this.calculationTypes.forEach(_ref => {
51
+ let [id, calculator] = _ref;
52
+ this.calculationResults.set(id, calculator);
53
+ calculator.initialize(context);
54
+ });
55
+ }
56
+
57
+ /**
58
+ * Processes the row/column at the given index.
59
+ *
60
+ * @param {number} index The index of the row/column.
61
+ * @param {*} context The context object (rows or columns viewport calculator).
62
+ */
63
+ _process(index, context) {
64
+ this.calculationTypes.forEach(_ref2 => {
65
+ let [, calculator] = _ref2;
66
+ return calculator.process(index, context);
67
+ });
68
+ }
69
+
70
+ /**
71
+ * Finalizes all calculators (triggers all calculators after calculating the rows/columns sizes).
72
+ *
73
+ * @param {*} context The context object (rows or columns viewport calculator).
74
+ */
75
+ _finalize(context) {
76
+ this.calculationTypes.forEach(_ref3 => {
77
+ let [, calculator] = _ref3;
78
+ return calculator.finalize(context);
79
+ });
80
+ }
81
+
82
+ /**
83
+ * Gets the results for the given calculator.
84
+ *
85
+ * @param {string} calculatorId The id of the calculator.
86
+ * @returns {ColumnsCalculationType | RowsCalculationType}
87
+ */
88
+ getResultsFor(calculatorId) {
89
+ return this.calculationResults.get(calculatorId);
90
+ }
91
+ }
92
+ exports.ViewportBaseCalculator = ViewportBaseCalculator;
@@ -0,0 +1,88 @@
1
+ import "core-js/modules/es.error.cause.js";
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
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
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
+ /**
6
+ * @typedef {object} ColumnsCalculationType
7
+ * @property {number | null} startColumn The column index of the first column in the viewport.
8
+ * @property {number | null} endColumn The column index of the last column in the viewport.
9
+ * @property {number} count Total number of columns.
10
+ * @property {number | null} startPosition Position of the first fully column (in px).
11
+ * @property {boolean} isVisibleInTrimmingContainer Determines if the viewport is visible in the trimming container.
12
+ */
13
+ /**
14
+ * @typedef {object} RowsCalculationType
15
+ * @property {number | null} startRow The row index of the first row in the viewport.
16
+ * @property {number | null} endRow The row index of the last row in the viewport.
17
+ * @property {number} count Total number of rows.
18
+ * @property {number | null} startPosition Position of the first fully row (in px).
19
+ * @property {boolean} isVisibleInTrimmingContainer Determines if the viewport is visible in the trimming container.
20
+ */
21
+ /**
22
+ * @class ViewportBaseCalculator
23
+ */
24
+ export class ViewportBaseCalculator {
25
+ constructor(calculationTypes) {
26
+ /**
27
+ * The calculation types to be performed.
28
+ *
29
+ * @type {Array}
30
+ */
31
+ _defineProperty(this, "calculationTypes", []);
32
+ /**
33
+ * The calculation results.
34
+ *
35
+ * @type {Map<string, ColumnsCalculationType | RowsCalculationType>}
36
+ */
37
+ _defineProperty(this, "calculationResults", new Map());
38
+ this.calculationTypes = calculationTypes;
39
+ }
40
+
41
+ /**
42
+ * Initializes all calculators (triggers all calculators before calculating the rows/columns sizes).
43
+ *
44
+ * @param {*} context The context object (rows or columns viewport calculator).
45
+ */
46
+ _initialize(context) {
47
+ this.calculationTypes.forEach(_ref => {
48
+ let [id, calculator] = _ref;
49
+ this.calculationResults.set(id, calculator);
50
+ calculator.initialize(context);
51
+ });
52
+ }
53
+
54
+ /**
55
+ * Processes the row/column at the given index.
56
+ *
57
+ * @param {number} index The index of the row/column.
58
+ * @param {*} context The context object (rows or columns viewport calculator).
59
+ */
60
+ _process(index, context) {
61
+ this.calculationTypes.forEach(_ref2 => {
62
+ let [, calculator] = _ref2;
63
+ return calculator.process(index, context);
64
+ });
65
+ }
66
+
67
+ /**
68
+ * Finalizes all calculators (triggers all calculators after calculating the rows/columns sizes).
69
+ *
70
+ * @param {*} context The context object (rows or columns viewport calculator).
71
+ */
72
+ _finalize(context) {
73
+ this.calculationTypes.forEach(_ref3 => {
74
+ let [, calculator] = _ref3;
75
+ return calculator.finalize(context);
76
+ });
77
+ }
78
+
79
+ /**
80
+ * Gets the results for the given calculator.
81
+ *
82
+ * @param {string} calculatorId The id of the calculator.
83
+ * @returns {ColumnsCalculationType | RowsCalculationType}
84
+ */
85
+ getResultsFor(calculatorId) {
86
+ return this.calculationResults.get(calculatorId);
87
+ }
88
+ }
@@ -2,89 +2,61 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.error.cause.js");
5
- require("core-js/modules/es.array.at.js");
6
5
  require("core-js/modules/es.array.push.js");
7
- var _constants = require("./constants");
8
- function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
9
- function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
10
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ var _viewportBase = require("./viewportBase");
7
+ 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; }
11
8
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
12
9
  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); }
13
- function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
14
- function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
15
- function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
10
+ const DEFAULT_WIDTH = exports.DEFAULT_WIDTH = 50;
11
+
16
12
  /**
17
13
  * @typedef {object} ViewportColumnsCalculatorOptions
14
+ * @property {Map<string, ViewportBaseCalculator>} calculationTypes The calculation types to be performed.
18
15
  * @property {number} viewportWidth Width of the viewport.
19
16
  * @property {number} scrollOffset Current horizontal scroll position of the viewport.
20
17
  * @property {number} totalColumns Total number of columns.
21
18
  * @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).
22
- * @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by
23
- * MergeCells plugin).
24
- * @property {string} calculationType String which describes types of calculation which will be performed.
19
+ * @property {Function} overrideFn Function that allows to adjust the `startRow` and `endRow` parameters.
25
20
  * @property {string} inlineStartOffset Inline-start offset of the parent container.
26
- * @property {string} stretchMode Stretch mode 'all' or 'last'.
27
- * @property {Function} stretchingColumnWidthFn Function that returns the new width of the stretched column.
28
21
  */
29
22
  /**
30
- * Calculates indexes of columns to render OR columns that are visible.
31
- * To redo the calculation, you need to create a new calculator.
23
+ * Calculates indexes of columns to render OR columns that are visible OR partially visible in the viewport.
32
24
  *
33
25
  * @class ViewportColumnsCalculator
34
26
  */
35
- var _options = /*#__PURE__*/new WeakMap();
36
- class ViewportColumnsCalculator {
37
- /**
38
- * Default column width.
39
- *
40
- * @type {number}
41
- */
42
- static get DEFAULT_WIDTH() {
43
- return 50;
44
- }
45
-
46
- /**
47
- * Number of rendered/visible columns.
48
- *
49
- * @type {number}
50
- */
51
-
27
+ class ViewportColumnsCalculator extends _viewportBase.ViewportBaseCalculator {
52
28
  /**
53
29
  * @param {ViewportColumnsCalculatorOptions} options Object with all options specified for column viewport calculation.
54
30
  */
55
- constructor(options) {
56
- _defineProperty(this, "count", 0);
57
- /**
58
- * Index of the first rendered/visible column (can be overwritten using overrideFn).
59
- *
60
- * @type {number|null}
61
- */
62
- _defineProperty(this, "startColumn", null);
63
- /**
64
- * Index of the last rendered/visible column (can be overwritten using overrideFn).
65
- *
66
- * @type {null}
67
- */
68
- _defineProperty(this, "endColumn", null);
69
- /**
70
- * Position of the first rendered/visible column (in px).
71
- *
72
- * @type {number|null}
73
- */
74
- _defineProperty(this, "startPosition", null);
75
- /**
76
- * Determines if the viewport is visible in the trimming container.
77
- *
78
- * @type {boolean}
79
- */
80
- _defineProperty(this, "isVisibleInTrimmingContainer", false);
81
- /**
82
- * The calculator options.
83
- *
84
- * @type {ViewportColumnsCalculatorOptions}
85
- */
86
- _classPrivateFieldInitSpec(this, _options, void 0);
87
- _classPrivateFieldSet(_options, this, options);
31
+ constructor(_ref) {
32
+ let {
33
+ calculationTypes,
34
+ viewportWidth,
35
+ scrollOffset,
36
+ totalColumns,
37
+ columnWidthFn,
38
+ overrideFn,
39
+ inlineStartOffset
40
+ } = _ref;
41
+ super(calculationTypes);
42
+ _defineProperty(this, "viewportWidth", 0);
43
+ _defineProperty(this, "scrollOffset", 0);
44
+ _defineProperty(this, "zeroBasedScrollOffset", 0);
45
+ _defineProperty(this, "totalColumns", 0);
46
+ _defineProperty(this, "columnWidthFn", null);
47
+ _defineProperty(this, "columnWidth", 0);
48
+ _defineProperty(this, "overrideFn", null);
49
+ _defineProperty(this, "inlineStartOffset", 0);
50
+ _defineProperty(this, "totalCalculatedWidth", 0);
51
+ _defineProperty(this, "startPositions", []);
52
+ _defineProperty(this, "needReverse", true);
53
+ this.viewportWidth = viewportWidth;
54
+ this.scrollOffset = scrollOffset;
55
+ this.zeroBasedScrollOffset = Math.max(scrollOffset, 0);
56
+ this.totalColumns = totalColumns;
57
+ this.columnWidthFn = columnWidthFn;
58
+ this.overrideFn = overrideFn;
59
+ this.inlineStartOffset = inlineStartOffset;
88
60
  this.calculate();
89
61
  }
90
62
 
@@ -92,96 +64,30 @@ class ViewportColumnsCalculator {
92
64
  * Calculates viewport.
93
65
  */
94
66
  calculate() {
95
- const {
96
- calculationType,
97
- overrideFn,
98
- scrollOffset,
99
- totalColumns,
100
- viewportWidth
101
- } = _classPrivateFieldGet(_options, this);
102
- const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(_options, this).scrollOffset, 0);
103
- // +1 pixel for row header width compensation for horizontal scroll > 0
104
- const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
105
- let sum = 0;
106
- let needReverse = true;
107
- const startPositions = [];
108
- let columnWidth;
109
- let firstVisibleColumnWidth = 0;
110
- let lastVisibleColumnWidth = 0;
111
- for (let i = 0; i < totalColumns; i++) {
112
- columnWidth = this._getColumnWidth(i);
113
- if (sum <= zeroBasedScrollOffset && calculationType !== _constants.FULLY_VISIBLE_TYPE) {
114
- this.startColumn = i;
115
- firstVisibleColumnWidth = columnWidth;
116
- }
117
- if (sum >= zeroBasedScrollOffset && sum + (calculationType === _constants.FULLY_VISIBLE_TYPE ? columnWidth : 0) <= zeroBasedScrollOffset + compensatedViewportWidth) {
118
- if (this.startColumn === null || this.startColumn === undefined) {
119
- this.startColumn = i;
120
- firstVisibleColumnWidth = columnWidth;
121
- }
122
- this.endColumn = i;
123
- }
124
- startPositions.push(sum);
125
- sum += columnWidth;
126
- lastVisibleColumnWidth = columnWidth;
127
- if (calculationType !== _constants.FULLY_VISIBLE_TYPE) {
128
- this.endColumn = i;
129
- }
130
- if (sum >= zeroBasedScrollOffset + viewportWidth) {
131
- needReverse = false;
67
+ this._initialize(this);
68
+ for (let column = 0; column < this.totalColumns; column++) {
69
+ this.columnWidth = this.getColumnWidth(column);
70
+ this._process(column, this);
71
+ this.startPositions.push(this.totalCalculatedWidth);
72
+ this.totalCalculatedWidth += this.columnWidth;
73
+ if (this.totalCalculatedWidth >= this.zeroBasedScrollOffset + this.viewportWidth) {
74
+ this.needReverse = false;
132
75
  break;
133
76
  }
134
77
  }
135
- const mostRightScrollOffset = scrollOffset + viewportWidth - compensatedViewportWidth;
136
- const inlineEndColumnOffset = calculationType === _constants.FULLY_VISIBLE_TYPE ? 0 : lastVisibleColumnWidth;
137
- const inlineStartColumnOffset = calculationType === _constants.FULLY_VISIBLE_TYPE ? firstVisibleColumnWidth : 0;
138
- if (
139
- // the table is to the left of the viewport
140
- mostRightScrollOffset < -1 * _classPrivateFieldGet(_options, this).inlineStartOffset || scrollOffset > startPositions.at(-1) + inlineEndColumnOffset ||
141
- // the table is to the right of the viewport
142
- -1 * _classPrivateFieldGet(_options, this).scrollOffset - _classPrivateFieldGet(_options, this).viewportWidth > -1 * inlineStartColumnOffset) {
143
- this.isVisibleInTrimmingContainer = false;
144
- } else {
145
- this.isVisibleInTrimmingContainer = true;
146
- }
147
- if (this.endColumn === totalColumns - 1 && needReverse) {
148
- this.startColumn = this.endColumn;
149
- while (this.startColumn > 0) {
150
- const viewportSum = startPositions[this.endColumn] + columnWidth - startPositions[this.startColumn - 1];
151
- if (viewportSum <= viewportWidth || calculationType !== _constants.FULLY_VISIBLE_TYPE) {
152
- this.startColumn -= 1;
153
- }
154
- if (viewportSum > viewportWidth) {
155
- break;
156
- }
157
- }
158
- }
159
- if (calculationType === _constants.RENDER_TYPE && this.startColumn !== null && overrideFn) {
160
- overrideFn(this);
161
- }
162
- this.startPosition = startPositions[this.startColumn];
163
- if (this.startPosition === undefined) {
164
- this.startPosition = null;
165
- }
166
-
167
- // If totalColumns exceeded its total columns size set endColumn to the latest item
168
- if (totalColumns < this.endColumn) {
169
- this.endColumn = totalColumns - 1;
170
- }
171
- if (this.startColumn !== null) {
172
- this.count = this.endColumn - this.startColumn + 1;
173
- }
78
+ this._finalize(this);
174
79
  }
175
80
 
176
81
  /**
177
- * @param {number} column The visual column index.
82
+ * Gets the column width at the specified column index.
83
+ *
84
+ * @param {number} column Column index.
178
85
  * @returns {number}
179
- * @private
180
86
  */
181
- _getColumnWidth(column) {
182
- let width = _classPrivateFieldGet(_options, this).columnWidthFn(column);
87
+ getColumnWidth(column) {
88
+ const width = this.columnWidthFn(column);
183
89
  if (isNaN(width)) {
184
- width = ViewportColumnsCalculator.DEFAULT_WIDTH;
90
+ return DEFAULT_WIDTH;
185
91
  }
186
92
  return width;
187
93
  }