handsontable 0.0.0-next-7026906-20231107 → 0.0.0-next-7b93b7d-20231107

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (316) hide show
  1. package/3rdparty/SheetClip/SheetClip.js +2 -2
  2. package/3rdparty/SheetClip/SheetClip.mjs +2 -2
  3. package/3rdparty/autoResize/autoResize.js +2 -2
  4. package/3rdparty/autoResize/autoResize.mjs +2 -2
  5. package/3rdparty/walkontable/src/calculator/viewportColumns.js +108 -85
  6. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +108 -85
  7. package/3rdparty/walkontable/src/calculator/viewportRows.js +60 -52
  8. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +60 -52
  9. package/3rdparty/walkontable/src/core/clone.js +6 -0
  10. package/3rdparty/walkontable/src/core/clone.mjs +6 -0
  11. package/3rdparty/walkontable/src/event.js +125 -74
  12. package/3rdparty/walkontable/src/event.mjs +125 -74
  13. package/3rdparty/walkontable/src/filter/column.js +16 -0
  14. package/3rdparty/walkontable/src/filter/column.mjs +16 -0
  15. package/3rdparty/walkontable/src/filter/row.js +16 -0
  16. package/3rdparty/walkontable/src/filter/row.mjs +16 -0
  17. package/3rdparty/walkontable/src/overlay/bottom.js +1 -1
  18. package/3rdparty/walkontable/src/overlay/bottom.mjs +1 -1
  19. package/3rdparty/walkontable/src/overlay/top.js +1 -1
  20. package/3rdparty/walkontable/src/overlay/top.mjs +1 -1
  21. package/3rdparty/walkontable/src/renderer/_base.js +12 -5
  22. package/3rdparty/walkontable/src/renderer/_base.mjs +12 -5
  23. package/3rdparty/walkontable/src/renderer/cells.js +6 -2
  24. package/3rdparty/walkontable/src/renderer/cells.mjs +6 -2
  25. package/3rdparty/walkontable/src/renderer/rowHeaders.js +6 -2
  26. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +6 -2
  27. package/3rdparty/walkontable/src/renderer/rows.js +5 -0
  28. package/3rdparty/walkontable/src/renderer/rows.mjs +5 -0
  29. package/3rdparty/walkontable/src/renderer/table.js +24 -17
  30. package/3rdparty/walkontable/src/renderer/table.mjs +24 -17
  31. package/3rdparty/walkontable/src/scroll.js +2 -2
  32. package/3rdparty/walkontable/src/scroll.mjs +2 -2
  33. package/3rdparty/walkontable/src/selection/border/border.js +1 -1
  34. package/3rdparty/walkontable/src/selection/border/border.mjs +1 -1
  35. package/3rdparty/walkontable/src/settings.js +10 -10
  36. package/3rdparty/walkontable/src/settings.mjs +10 -10
  37. package/3rdparty/walkontable/src/table.js +3 -3
  38. package/3rdparty/walkontable/src/table.mjs +3 -3
  39. package/3rdparty/walkontable/src/utils/column.js +19 -4
  40. package/3rdparty/walkontable/src/utils/column.mjs +19 -4
  41. package/3rdparty/walkontable/src/utils/nodesPool.js +5 -0
  42. package/3rdparty/walkontable/src/utils/nodesPool.mjs +5 -0
  43. package/3rdparty/walkontable/src/utils/orderView/view.js +13 -6
  44. package/3rdparty/walkontable/src/utils/orderView/view.mjs +13 -6
  45. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +9 -6
  46. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +9 -6
  47. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +7 -4
  48. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +7 -4
  49. package/3rdparty/walkontable/src/utils/row.js +14 -2
  50. package/3rdparty/walkontable/src/utils/row.mjs +14 -2
  51. package/3rdparty/walkontable/src/viewport.js +9 -9
  52. package/3rdparty/walkontable/src/viewport.mjs +9 -9
  53. package/base.js +2 -2
  54. package/base.mjs +2 -2
  55. package/core.js +25 -25
  56. package/core.mjs +25 -25
  57. package/dataMap/dataMap.js +99 -90
  58. package/dataMap/dataMap.mjs +99 -90
  59. package/dataMap/dataSource.js +14 -8
  60. package/dataMap/dataSource.mjs +14 -8
  61. package/dataMap/metaManager/lazyFactoryMap.js +19 -7
  62. package/dataMap/metaManager/lazyFactoryMap.mjs +19 -7
  63. package/dataMap/metaManager/metaLayers/cellMeta.js +8 -3
  64. package/dataMap/metaManager/metaLayers/cellMeta.mjs +8 -3
  65. package/dataMap/metaManager/metaLayers/columnMeta.js +7 -1
  66. package/dataMap/metaManager/metaLayers/columnMeta.mjs +7 -1
  67. package/dataMap/metaManager/metaLayers/globalMeta.js +6 -1
  68. package/dataMap/metaManager/metaLayers/globalMeta.mjs +6 -1
  69. package/dataMap/metaManager/metaLayers/tableMeta.js +6 -2
  70. package/dataMap/metaManager/metaLayers/tableMeta.mjs +6 -2
  71. package/dataMap/metaManager/metaSchema.js +55 -55
  72. package/dataMap/metaManager/metaSchema.mjs +55 -55
  73. package/dataMap/metaManager/mods/dynamicCellMeta.js +7 -2
  74. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +7 -2
  75. package/dataMap/metaManager/mods/extendMetaProperties.js +8 -4
  76. package/dataMap/metaManager/mods/extendMetaProperties.mjs +8 -4
  77. package/dataMap/metaManager/utils.js +2 -2
  78. package/dataMap/metaManager/utils.mjs +2 -2
  79. package/dist/handsontable.css +2 -2
  80. package/dist/handsontable.full.css +2 -2
  81. package/dist/handsontable.full.js +7244 -6347
  82. package/dist/handsontable.full.min.css +2 -2
  83. package/dist/handsontable.full.min.js +120 -120
  84. package/dist/handsontable.js +7243 -6346
  85. package/dist/handsontable.min.css +2 -2
  86. package/dist/handsontable.min.js +28 -28
  87. package/editorManager.js +105 -95
  88. package/editorManager.mjs +105 -95
  89. package/editors/autocompleteEditor/autocompleteEditor.js +47 -46
  90. package/editors/autocompleteEditor/autocompleteEditor.mjs +46 -45
  91. package/editors/baseEditor/baseEditor.js +23 -26
  92. package/editors/baseEditor/baseEditor.mjs +23 -26
  93. package/editors/dateEditor/dateEditor.js +24 -15
  94. package/editors/dateEditor/dateEditor.mjs +24 -15
  95. package/editors/dropdownEditor/dropdownEditor.js +1 -1
  96. package/editors/dropdownEditor/dropdownEditor.mjs +1 -1
  97. package/editors/handsontableEditor/handsontableEditor.js +4 -4
  98. package/editors/handsontableEditor/handsontableEditor.mjs +4 -4
  99. package/editors/textEditor/textEditor.js +23 -17
  100. package/editors/textEditor/textEditor.mjs +24 -18
  101. package/eventManager.js +8 -0
  102. package/eventManager.mjs +8 -0
  103. package/helpers/array.js +2 -2
  104. package/helpers/array.mjs +2 -2
  105. package/helpers/dom/element.js +7 -7
  106. package/helpers/dom/element.mjs +7 -7
  107. package/helpers/function.js +1 -1
  108. package/helpers/function.mjs +1 -1
  109. package/helpers/mixed.js +1 -1
  110. package/helpers/mixed.mjs +1 -1
  111. package/helpers/object.js +4 -4
  112. package/helpers/object.mjs +4 -4
  113. package/helpers/string.js +1 -1
  114. package/helpers/string.mjs +1 -1
  115. package/package.json +1 -1
  116. package/pluginHooks.d.ts +0 -2
  117. package/pluginHooks.js +12 -3
  118. package/pluginHooks.mjs +12 -3
  119. package/plugins/autoColumnSize/autoColumnSize.js +141 -130
  120. package/plugins/autoColumnSize/autoColumnSize.mjs +140 -129
  121. package/plugins/autoRowSize/autoRowSize.js +112 -125
  122. package/plugins/autoRowSize/autoRowSize.mjs +110 -123
  123. package/plugins/autofill/autofill.js +97 -102
  124. package/plugins/autofill/autofill.mjs +96 -101
  125. package/plugins/base/base.js +57 -22
  126. package/plugins/base/base.mjs +56 -22
  127. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +29 -24
  128. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +28 -23
  129. package/plugins/collapsibleColumns/collapsibleColumns.js +104 -107
  130. package/plugins/collapsibleColumns/collapsibleColumns.mjs +102 -104
  131. package/plugins/columnSorting/columnSorting.js +105 -98
  132. package/plugins/columnSorting/columnSorting.mjs +104 -97
  133. package/plugins/columnSorting/columnStatesManager.js +12 -6
  134. package/plugins/columnSorting/columnStatesManager.mjs +12 -6
  135. package/plugins/columnSummary/columnSummary.js +71 -58
  136. package/plugins/columnSummary/columnSummary.mjs +70 -57
  137. package/plugins/columnSummary/endpoints.js +20 -14
  138. package/plugins/columnSummary/endpoints.mjs +20 -14
  139. package/plugins/comments/commentEditor.js +30 -2
  140. package/plugins/comments/commentEditor.mjs +30 -2
  141. package/plugins/comments/comments.js +158 -169
  142. package/plugins/comments/comments.mjs +157 -168
  143. package/plugins/comments/displaySwitch.js +7 -3
  144. package/plugins/comments/displaySwitch.mjs +7 -3
  145. package/plugins/contextMenu/commandExecutor.js +15 -2
  146. package/plugins/contextMenu/commandExecutor.mjs +15 -2
  147. package/plugins/contextMenu/contextMenu.js +91 -101
  148. package/plugins/contextMenu/contextMenu.mjs +90 -100
  149. package/plugins/contextMenu/itemsFactory.js +19 -4
  150. package/plugins/contextMenu/itemsFactory.mjs +19 -4
  151. package/plugins/contextMenu/menu/cursor.js +36 -0
  152. package/plugins/contextMenu/menu/cursor.mjs +36 -0
  153. package/plugins/contextMenu/menu/menu.js +57 -5
  154. package/plugins/contextMenu/menu/menu.mjs +57 -5
  155. package/plugins/copyPaste/copyPaste.js +74 -75
  156. package/plugins/copyPaste/copyPaste.mjs +74 -75
  157. package/plugins/customBorders/customBorders.js +49 -48
  158. package/plugins/customBorders/customBorders.mjs +48 -47
  159. package/plugins/dragToScroll/dragToScroll.js +50 -54
  160. package/plugins/dragToScroll/dragToScroll.mjs +49 -52
  161. package/plugins/dropdownMenu/dropdownMenu.js +132 -129
  162. package/plugins/dropdownMenu/dropdownMenu.mjs +132 -129
  163. package/plugins/exportFile/dataProvider.js +7 -2
  164. package/plugins/exportFile/dataProvider.mjs +7 -2
  165. package/plugins/exportFile/exportFile.js +1 -1
  166. package/plugins/exportFile/exportFile.mjs +1 -1
  167. package/plugins/exportFile/types/_base.js +14 -6
  168. package/plugins/exportFile/types/_base.mjs +14 -6
  169. package/plugins/filters/component/actionBar.js +9 -0
  170. package/plugins/filters/component/actionBar.mjs +9 -0
  171. package/plugins/filters/component/condition.js +13 -0
  172. package/plugins/filters/component/condition.mjs +13 -0
  173. package/plugins/filters/component/operators.js +9 -0
  174. package/plugins/filters/component/operators.mjs +9 -0
  175. package/plugins/filters/component/value.js +9 -0
  176. package/plugins/filters/component/value.mjs +9 -0
  177. package/plugins/filters/conditionCollection.js +9 -4
  178. package/plugins/filters/conditionCollection.mjs +9 -4
  179. package/plugins/filters/conditionUpdateObserver.js +53 -42
  180. package/plugins/filters/conditionUpdateObserver.mjs +53 -42
  181. package/plugins/filters/dataFilter.js +9 -3
  182. package/plugins/filters/dataFilter.mjs +9 -3
  183. package/plugins/filters/filters.js +184 -189
  184. package/plugins/filters/filters.mjs +182 -187
  185. package/plugins/filters/ui/_base.js +1 -1
  186. package/plugins/filters/ui/_base.mjs +1 -1
  187. package/plugins/filters/utils.js +1 -1
  188. package/plugins/filters/utils.mjs +1 -1
  189. package/plugins/formulas/engine/settings.js +1 -1
  190. package/plugins/formulas/engine/settings.mjs +1 -1
  191. package/plugins/formulas/formulas.js +684 -602
  192. package/plugins/formulas/formulas.mjs +682 -600
  193. package/plugins/hiddenColumns/hiddenColumns.js +174 -169
  194. package/plugins/hiddenColumns/hiddenColumns.mjs +173 -168
  195. package/plugins/hiddenRows/hiddenRows.js +170 -165
  196. package/plugins/hiddenRows/hiddenRows.mjs +169 -164
  197. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.js +1 -1
  198. package/plugins/manualColumnFreeze/contextMenuItem/freezeColumn.mjs +1 -1
  199. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.js +1 -1
  200. package/plugins/manualColumnFreeze/contextMenuItem/unfreezeColumn.mjs +1 -1
  201. package/plugins/manualColumnFreeze/manualColumnFreeze.js +67 -54
  202. package/plugins/manualColumnFreeze/manualColumnFreeze.mjs +64 -51
  203. package/plugins/manualColumnMove/manualColumnMove.js +287 -232
  204. package/plugins/manualColumnMove/manualColumnMove.mjs +286 -231
  205. package/plugins/manualColumnMove/ui/_base.js +9 -3
  206. package/plugins/manualColumnMove/ui/_base.mjs +9 -3
  207. package/plugins/manualColumnResize/manualColumnResize.js +291 -246
  208. package/plugins/manualColumnResize/manualColumnResize.mjs +290 -244
  209. package/plugins/manualRowMove/manualRowMove.js +223 -208
  210. package/plugins/manualRowMove/manualRowMove.mjs +222 -207
  211. package/plugins/manualRowMove/ui/_base.js +10 -5
  212. package/plugins/manualRowMove/ui/_base.mjs +10 -5
  213. package/plugins/manualRowResize/manualRowResize.js +254 -209
  214. package/plugins/manualRowResize/manualRowResize.mjs +253 -207
  215. package/plugins/mergeCells/calculations/autofill.js +9 -3
  216. package/plugins/mergeCells/calculations/autofill.mjs +9 -3
  217. package/plugins/mergeCells/calculations/selection.js +10 -4
  218. package/plugins/mergeCells/calculations/selection.mjs +10 -4
  219. package/plugins/mergeCells/cellCoords.js +16 -6
  220. package/plugins/mergeCells/cellCoords.mjs +16 -6
  221. package/plugins/mergeCells/cellsCollection.js +10 -4
  222. package/plugins/mergeCells/cellsCollection.mjs +10 -4
  223. package/plugins/mergeCells/mergeCells.js +582 -502
  224. package/plugins/mergeCells/mergeCells.mjs +580 -500
  225. package/plugins/multiColumnSorting/multiColumnSorting.js +13 -10
  226. package/plugins/multiColumnSorting/multiColumnSorting.mjs +13 -10
  227. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +16 -28
  228. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +16 -27
  229. package/plugins/nestedHeaders/nestedHeaders.js +542 -499
  230. package/plugins/nestedHeaders/nestedHeaders.mjs +554 -511
  231. package/plugins/nestedHeaders/stateManager/index.js +1 -1
  232. package/plugins/nestedHeaders/stateManager/index.mjs +1 -1
  233. package/plugins/nestedRows/data/dataManager.js +21 -15
  234. package/plugins/nestedRows/data/dataManager.mjs +21 -15
  235. package/plugins/nestedRows/nestedRows.js +326 -278
  236. package/plugins/nestedRows/nestedRows.mjs +325 -277
  237. package/plugins/nestedRows/ui/_base.js +7 -1
  238. package/plugins/nestedRows/ui/_base.mjs +7 -1
  239. package/plugins/nestedRows/ui/collapsing.js +2 -2
  240. package/plugins/nestedRows/ui/collapsing.mjs +2 -2
  241. package/plugins/nestedRows/ui/contextMenu.js +28 -18
  242. package/plugins/nestedRows/ui/contextMenu.mjs +28 -18
  243. package/plugins/nestedRows/utils/rowMoveController.js +12 -4
  244. package/plugins/nestedRows/utils/rowMoveController.mjs +12 -4
  245. package/plugins/persistentState/persistentState.js +14 -11
  246. package/plugins/persistentState/persistentState.mjs +14 -11
  247. package/plugins/persistentState/storage.js +11 -6
  248. package/plugins/persistentState/storage.mjs +11 -6
  249. package/plugins/registry.js +2 -2
  250. package/plugins/registry.mjs +2 -2
  251. package/plugins/search/search.js +57 -46
  252. package/plugins/search/search.mjs +56 -45
  253. package/plugins/touchScroll/touchScroll.js +102 -100
  254. package/plugins/touchScroll/touchScroll.mjs +100 -98
  255. package/plugins/trimRows/trimRows.js +33 -28
  256. package/plugins/trimRows/trimRows.mjs +32 -27
  257. package/plugins/undoRedo/undoRedo.js +2 -2
  258. package/plugins/undoRedo/undoRedo.mjs +2 -2
  259. package/renderers/autocompleteRenderer/autocompleteRenderer.js +11 -11
  260. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +11 -11
  261. package/renderers/baseRenderer/baseRenderer.js +2 -2
  262. package/renderers/baseRenderer/baseRenderer.mjs +2 -2
  263. package/renderers/checkboxRenderer/checkboxRenderer.js +23 -23
  264. package/renderers/checkboxRenderer/checkboxRenderer.mjs +23 -23
  265. package/renderers/dateRenderer/dateRenderer.js +4 -4
  266. package/renderers/dateRenderer/dateRenderer.mjs +4 -4
  267. package/renderers/handsontableRenderer/handsontableRenderer.js +4 -4
  268. package/renderers/handsontableRenderer/handsontableRenderer.mjs +4 -4
  269. package/renderers/htmlRenderer/htmlRenderer.js +4 -4
  270. package/renderers/htmlRenderer/htmlRenderer.mjs +4 -4
  271. package/renderers/numericRenderer/numericRenderer.js +3 -3
  272. package/renderers/numericRenderer/numericRenderer.mjs +3 -3
  273. package/renderers/passwordRenderer/passwordRenderer.js +3 -3
  274. package/renderers/passwordRenderer/passwordRenderer.mjs +3 -3
  275. package/renderers/selectRenderer/selectRenderer.js +4 -4
  276. package/renderers/selectRenderer/selectRenderer.mjs +4 -4
  277. package/renderers/textRenderer/textRenderer.js +5 -5
  278. package/renderers/textRenderer/textRenderer.mjs +5 -5
  279. package/renderers/timeRenderer/timeRenderer.js +3 -3
  280. package/renderers/timeRenderer/timeRenderer.mjs +3 -3
  281. package/selection/range.js +12 -2
  282. package/selection/range.mjs +12 -2
  283. package/selection/selection.js +3 -3
  284. package/selection/selection.mjs +3 -3
  285. package/tableView.js +208 -200
  286. package/tableView.mjs +208 -200
  287. package/translations/changesObservable/utils.js +2 -2
  288. package/translations/changesObservable/utils.mjs +2 -2
  289. package/translations/indexMapper.js +25 -22
  290. package/translations/indexMapper.mjs +25 -22
  291. package/translations/mapCollections/aggregatedCollection.js +8 -2
  292. package/translations/mapCollections/aggregatedCollection.mjs +8 -2
  293. package/translations/mapCollections/mapCollection.js +5 -2
  294. package/translations/mapCollections/mapCollection.mjs +5 -2
  295. package/translations/maps/indexMap.js +6 -1
  296. package/translations/maps/indexMap.mjs +6 -1
  297. package/translations/maps/utils/physicallyIndexed.js +2 -2
  298. package/translations/maps/utils/physicallyIndexed.mjs +2 -2
  299. package/utils/dataStructures/linkedList.js +10 -6
  300. package/utils/dataStructures/linkedList.mjs +10 -6
  301. package/utils/dataStructures/queue.js +1 -1
  302. package/utils/dataStructures/queue.mjs +1 -1
  303. package/utils/dataStructures/stack.js +1 -1
  304. package/utils/dataStructures/stack.mjs +1 -1
  305. package/utils/ghostTable.js +2 -2
  306. package/utils/ghostTable.mjs +2 -2
  307. package/utils/interval.js +73 -36
  308. package/utils/interval.mjs +73 -36
  309. package/utils/parseTable.js +1 -1
  310. package/utils/parseTable.mjs +1 -1
  311. package/validators/autocompleteValidator/autocompleteValidator.js +1 -1
  312. package/validators/autocompleteValidator/autocompleteValidator.mjs +1 -1
  313. package/validators/dateValidator/dateValidator.js +1 -1
  314. package/validators/dateValidator/dateValidator.mjs +1 -1
  315. package/validators/numericValidator/numericValidator.js +1 -1
  316. package/validators/numericValidator/numericValidator.mjs +1 -1
@@ -1,14 +1,38 @@
1
1
  import "core-js/modules/es.array.push.js";
2
2
  import "core-js/modules/es.array.at.js";
3
+ import "core-js/modules/es.error.cause.js";
4
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
5
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
6
+ 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; }
7
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
8
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
9
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
10
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
11
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
12
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
13
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
3
14
  import { RENDER_TYPE, FULLY_VISIBLE_TYPE } from "./constants.mjs";
4
- const privatePool = new WeakMap();
5
-
15
+ /**
16
+ * @typedef {object} ViewportColumnsCalculatorOptions
17
+ * @property {number} viewportWidth Width of the viewport.
18
+ * @property {number} scrollOffset Current horizontal scroll position of the viewport.
19
+ * @property {number} totalColumns Total number of columns.
20
+ * @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).
21
+ * @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by
22
+ * MergeCells plugin).
23
+ * @property {string} calculationType String which describes types of calculation which will be performed.
24
+ * @property {string} inlineStartOffset Inline-start offset of the parent container.
25
+ * @property {string} stretchMode Stretch mode 'all' or 'last'.
26
+ * @property {Function} stretchingColumnWidthFn Function that returns the new width of the stretched column.
27
+ */
6
28
  /**
7
29
  * Calculates indexes of columns to render OR columns that are visible.
8
30
  * To redo the calculation, you need to create a new calculator.
9
31
  *
10
32
  * @class ViewportColumnsCalculator
11
33
  */
34
+ var _totalTargetWidth = /*#__PURE__*/new WeakMap();
35
+ var _options = /*#__PURE__*/new WeakMap();
12
36
  class ViewportColumnsCalculator {
13
37
  /**
14
38
  * Default column width.
@@ -20,75 +44,76 @@ class ViewportColumnsCalculator {
20
44
  }
21
45
 
22
46
  /**
23
- * @param {object} options Object with all options specified for column viewport calculation.
24
- * @param {number} options.viewportSize Width of the viewport.
25
- * @param {number} options.scrollOffset Current horizontal scroll position of the viewport.
26
- * @param {number} options.totalItems Total number of columns.
27
- * @param {Function} options.itemSizeFn Function that returns the width of the column at a given index (in px).
28
- * @param {Function} options.overrideFn Function that changes calculated this.startRow, this.endRow (used by
29
- * MergeCells plugin).
30
- * @param {string} options.calculationType String which describes types of calculation which will be performed.
31
- * @param {string} options.inlineStartOffset Inline-start offset of the parent container.
32
- * @param {string} [options.stretchMode] Stretch mode 'all' or 'last'.
33
- * @param {Function} [options.stretchingItemWidthFn] Function that returns the new width of the stretched column.
47
+ * Number of rendered/visible columns.
48
+ *
49
+ * @type {number}
34
50
  */
35
- constructor() {
36
- let {
37
- viewportSize,
38
- scrollOffset,
39
- totalItems,
40
- itemSizeFn,
41
- overrideFn,
42
- calculationType,
43
- stretchMode,
44
- stretchingItemWidthFn = width => width,
45
- inlineStartOffset
46
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
47
- privatePool.set(this, {
48
- viewportWidth: viewportSize,
49
- scrollOffset,
50
- totalColumns: totalItems,
51
- columnWidthFn: itemSizeFn,
52
- overrideFn,
53
- calculationType,
54
- stretchingColumnWidthFn: stretchingItemWidthFn,
55
- inlineStartOffset
56
- });
57
-
58
- /**
59
- * Number of rendered/visible columns.
60
- *
61
- * @type {number}
62
- */
63
- this.count = 0;
64
51
 
52
+ /**
53
+ * @param {ViewportColumnsCalculatorOptions} options Object with all options specified for column viewport calculation.
54
+ */
55
+ constructor(options) {
56
+ _defineProperty(this, "count", 0);
65
57
  /**
66
58
  * Index of the first rendered/visible column (can be overwritten using overrideFn).
67
59
  *
68
60
  * @type {number|null}
69
61
  */
70
- this.startColumn = null;
71
-
62
+ _defineProperty(this, "startColumn", null);
72
63
  /**
73
64
  * Index of the last rendered/visible column (can be overwritten using overrideFn).
74
65
  *
75
66
  * @type {null}
76
67
  */
77
- this.endColumn = null;
78
-
68
+ _defineProperty(this, "endColumn", null);
79
69
  /**
80
70
  * Position of the first rendered/visible column (in px).
81
71
  *
82
72
  * @type {number|null}
83
73
  */
84
- this.startPosition = null;
85
- this.isVisibleInTrimmingContainer = false;
86
- this.stretchAllRatio = 0;
87
- this.stretchLastWidth = 0;
88
- this.stretch = stretchMode;
89
- this.totalTargetWidth = 0;
90
- this.needVerifyLastColumnWidth = true;
91
- this.stretchAllColumnsWidth = [];
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
+ * @type {number}
83
+ */
84
+ _defineProperty(this, "stretchAllRatio", 0);
85
+ /**
86
+ * @type {number}
87
+ */
88
+ _defineProperty(this, "stretchLastWidth", 0);
89
+ /**
90
+ * @type {number}
91
+ */
92
+ _classPrivateFieldInitSpec(this, _totalTargetWidth, {
93
+ writable: true,
94
+ value: 0
95
+ });
96
+ /**
97
+ * @type {boolean}
98
+ */
99
+ _defineProperty(this, "needVerifyLastColumnWidth", true);
100
+ /**
101
+ * @type {number[]}
102
+ */
103
+ _defineProperty(this, "stretchAllColumnsWidth", []);
104
+ /**
105
+ * The calculator options.
106
+ *
107
+ * @type {ViewportColumnsCalculatorOptions}
108
+ */
109
+ _classPrivateFieldInitSpec(this, _options, {
110
+ writable: true,
111
+ value: void 0
112
+ });
113
+ _classPrivateFieldSet(this, _options, options);
114
+ if (typeof _classPrivateFieldGet(this, _options).stretchingColumnWidthFn !== 'function') {
115
+ _classPrivateFieldGet(this, _options).stretchingColumnWidthFn = width => width;
116
+ }
92
117
  this.calculate();
93
118
  }
94
119
 
@@ -96,21 +121,22 @@ class ViewportColumnsCalculator {
96
121
  * Calculates viewport.
97
122
  */
98
123
  calculate() {
124
+ const {
125
+ calculationType,
126
+ overrideFn,
127
+ scrollOffset,
128
+ totalColumns,
129
+ viewportWidth
130
+ } = _classPrivateFieldGet(this, _options);
131
+ const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(this, _options).scrollOffset, 0);
132
+ // +1 pixel for row header width compensation for horizontal scroll > 0
133
+ const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
99
134
  let sum = 0;
100
135
  let needReverse = true;
101
136
  const startPositions = [];
102
137
  let columnWidth;
103
138
  let firstVisibleColumnWidth = 0;
104
139
  let lastVisibleColumnWidth = 0;
105
- const priv = privatePool.get(this);
106
- const calculationType = priv.calculationType;
107
- const overrideFn = priv.overrideFn;
108
- const scrollOffset = priv.scrollOffset;
109
- const zeroBasedScrollOffset = Math.max(priv.scrollOffset, 0);
110
- const totalColumns = priv.totalColumns;
111
- const viewportWidth = priv.viewportWidth;
112
- // +1 pixel for row header width compensation for horizontal scroll > 0
113
- const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
114
140
  for (let i = 0; i < totalColumns; i++) {
115
141
  columnWidth = this._getColumnWidth(i);
116
142
  if (sum <= zeroBasedScrollOffset && calculationType !== FULLY_VISIBLE_TYPE) {
@@ -118,7 +144,7 @@ class ViewportColumnsCalculator {
118
144
  firstVisibleColumnWidth = columnWidth;
119
145
  }
120
146
  if (sum >= zeroBasedScrollOffset && sum + (calculationType === FULLY_VISIBLE_TYPE ? columnWidth : 0) <= zeroBasedScrollOffset + compensatedViewportWidth) {
121
- if (this.startColumn === null || this.startColumn === void 0) {
147
+ if (this.startColumn === null || this.startColumn === undefined) {
122
148
  this.startColumn = i;
123
149
  firstVisibleColumnWidth = columnWidth;
124
150
  }
@@ -140,9 +166,9 @@ class ViewportColumnsCalculator {
140
166
  const inlineStartColumnOffset = calculationType === FULLY_VISIBLE_TYPE ? firstVisibleColumnWidth : 0;
141
167
  if (
142
168
  // the table is to the left of the viewport
143
- mostRightScrollOffset < -1 * priv.inlineStartOffset || scrollOffset > startPositions.at(-1) + inlineEndColumnOffset ||
169
+ mostRightScrollOffset < -1 * _classPrivateFieldGet(this, _options).inlineStartOffset || scrollOffset > startPositions.at(-1) + inlineEndColumnOffset ||
144
170
  // the table is to the right of the viewport
145
- -1 * priv.scrollOffset - priv.viewportWidth > -1 * inlineStartColumnOffset) {
171
+ -1 * _classPrivateFieldGet(this, _options).scrollOffset - _classPrivateFieldGet(this, _options).viewportWidth > -1 * inlineStartColumnOffset) {
146
172
  this.isVisibleInTrimmingContainer = false;
147
173
  } else {
148
174
  this.isVisibleInTrimmingContainer = true;
@@ -163,7 +189,7 @@ class ViewportColumnsCalculator {
163
189
  overrideFn(this);
164
190
  }
165
191
  this.startPosition = startPositions[this.startColumn];
166
- if (this.startPosition === void 0) {
192
+ if (this.startPosition === undefined) {
167
193
  this.startPosition = null;
168
194
  }
169
195
 
@@ -182,17 +208,16 @@ class ViewportColumnsCalculator {
182
208
  * @param {number} totalWidth The total width of the table.
183
209
  */
184
210
  refreshStretching(totalWidth) {
185
- if (this.stretch === 'none') {
211
+ if (_classPrivateFieldGet(this, _options).stretchMode === 'none') {
186
212
  return;
187
213
  }
188
214
  let totalColumnsWidth = totalWidth;
189
- this.totalTargetWidth = totalColumnsWidth;
190
- const priv = privatePool.get(this);
191
- const totalColumns = priv.totalColumns;
215
+ _classPrivateFieldSet(this, _totalTargetWidth, totalColumnsWidth);
216
+ const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
192
217
  let sumAll = 0;
193
218
  for (let i = 0; i < totalColumns; i++) {
194
219
  const columnWidth = this._getColumnWidth(i);
195
- const permanentColumnWidth = priv.stretchingColumnWidthFn(void 0, i);
220
+ const permanentColumnWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(undefined, i);
196
221
  if (typeof permanentColumnWidth === 'number') {
197
222
  totalColumnsWidth -= permanentColumnWidth;
198
223
  } else {
@@ -200,11 +225,11 @@ class ViewportColumnsCalculator {
200
225
  }
201
226
  }
202
227
  const remainingSize = totalColumnsWidth - sumAll;
203
- if (this.stretch === 'all' && remainingSize > 0) {
228
+ if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && remainingSize > 0) {
204
229
  this.stretchAllRatio = totalColumnsWidth / sumAll;
205
230
  this.stretchAllColumnsWidth = [];
206
231
  this.needVerifyLastColumnWidth = true;
207
- } else if (this.stretch === 'last' && totalColumnsWidth !== Infinity) {
232
+ } else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && totalColumnsWidth !== Infinity) {
208
233
  const columnWidth = this._getColumnWidth(totalColumns - 1);
209
234
  const lastColumnWidth = remainingSize + columnWidth;
210
235
  this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;
@@ -220,9 +245,9 @@ class ViewportColumnsCalculator {
220
245
  */
221
246
  getStretchedColumnWidth(column, baseWidth) {
222
247
  let result = null;
223
- if (this.stretch === 'all' && this.stretchAllRatio !== 0) {
248
+ if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && this.stretchAllRatio !== 0) {
224
249
  result = this._getStretchedAllColumnWidth(column, baseWidth);
225
- } else if (this.stretch === 'last' && this.stretchLastWidth !== 0) {
250
+ } else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && this.stretchLastWidth !== 0) {
226
251
  result = this._getStretchedLastColumnWidth(column);
227
252
  }
228
253
  return result;
@@ -236,12 +261,11 @@ class ViewportColumnsCalculator {
236
261
  */
237
262
  _getStretchedAllColumnWidth(column, baseWidth) {
238
263
  let sumRatioWidth = 0;
239
- const priv = privatePool.get(this);
240
- const totalColumns = priv.totalColumns;
264
+ const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
241
265
  if (!this.stretchAllColumnsWidth[column]) {
242
266
  const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);
243
- const newStretchedWidth = priv.stretchingColumnWidthFn(stretchedWidth, column);
244
- if (newStretchedWidth === void 0) {
267
+ const newStretchedWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(stretchedWidth, column);
268
+ if (newStretchedWidth === undefined) {
245
269
  this.stretchAllColumnsWidth[column] = stretchedWidth;
246
270
  } else {
247
271
  this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;
@@ -252,8 +276,8 @@ class ViewportColumnsCalculator {
252
276
  for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {
253
277
  sumRatioWidth += this.stretchAllColumnsWidth[i];
254
278
  }
255
- if (sumRatioWidth !== this.totalTargetWidth) {
256
- this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += this.totalTargetWidth - sumRatioWidth;
279
+ if (sumRatioWidth !== _classPrivateFieldGet(this, _totalTargetWidth)) {
280
+ this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(this, _totalTargetWidth) - sumRatioWidth;
257
281
  }
258
282
  }
259
283
  return this.stretchAllColumnsWidth[column];
@@ -265,8 +289,7 @@ class ViewportColumnsCalculator {
265
289
  * @private
266
290
  */
267
291
  _getStretchedLastColumnWidth(column) {
268
- const priv = privatePool.get(this);
269
- const totalColumns = priv.totalColumns;
292
+ const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
270
293
  if (column === totalColumns - 1) {
271
294
  return this.stretchLastWidth;
272
295
  }
@@ -279,7 +302,7 @@ class ViewportColumnsCalculator {
279
302
  * @private
280
303
  */
281
304
  _getColumnWidth(column) {
282
- let width = privatePool.get(this).columnWidthFn(column);
305
+ let width = _classPrivateFieldGet(this, _options).columnWidthFn(column);
283
306
  if (isNaN(width)) {
284
307
  width = ViewportColumnsCalculator.DEFAULT_WIDTH;
285
308
  }
@@ -3,15 +3,35 @@
3
3
  exports.__esModule = true;
4
4
  require("core-js/modules/es.array.push.js");
5
5
  require("core-js/modules/es.array.at.js");
6
+ require("core-js/modules/es.error.cause.js");
6
7
  var _constants = require("./constants");
7
- const privatePool = new WeakMap();
8
-
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; }
11
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
12
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
14
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
15
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
16
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
17
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
18
+ /**
19
+ * @typedef {object} ViewportRowsCalculatorOptions
20
+ * @property {number} viewportHeight Height of the viewport.
21
+ * @property {number} scrollOffset Current vertical scroll position of the viewport.
22
+ * @property {number} totalRows Total number of rows.
23
+ * @property {Function} rowHeightFn Function that returns the height of the row at a given index (in px).
24
+ * @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by MergeCells plugin).
25
+ * @property {string} calculationType String which describes types of calculation which will be performed.
26
+ * @property {number} horizontalScrollbarHeight The scrollbar height.
27
+ */
9
28
  /**
10
29
  * Calculates indexes of rows to render OR rows that are visible.
11
30
  * To redo the calculation, you need to create a new calculator.
12
31
  *
13
32
  * @class ViewportRowsCalculator
14
33
  */
34
+ var _options = /*#__PURE__*/new WeakMap();
15
35
  class ViewportRowsCalculator {
16
36
  /**
17
37
  * Default row height.
@@ -23,63 +43,50 @@ class ViewportRowsCalculator {
23
43
  }
24
44
 
25
45
  /**
26
- * @param {object} options Object with all options specified for row viewport calculation.
27
- * @param {number} options.viewportSize Height of the viewport.
28
- * @param {number} options.scrollOffset Current vertical scroll position of the viewport.
29
- * @param {number} options.totalItems Total number of rows.
30
- * @param {Function} options.itemSizeFn Function that returns the height of the row at a given index (in px).
31
- * @param {Function} options.overrideFn Function that changes calculated this.startRow, this.endRow (used by MergeCells plugin).
32
- * @param {string} options.calculationType String which describes types of calculation which will be performed.
33
- * @param {number} options.scrollbarHeight The scrollbar height.
46
+ * Number of rendered/visible rows.
47
+ *
48
+ * @type {number}
34
49
  */
35
- constructor() {
36
- let {
37
- viewportSize,
38
- scrollOffset,
39
- totalItems,
40
- itemSizeFn,
41
- overrideFn,
42
- calculationType,
43
- scrollbarHeight
44
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
45
- privatePool.set(this, {
46
- viewportHeight: viewportSize,
47
- scrollOffset,
48
- totalRows: totalItems,
49
- rowHeightFn: itemSizeFn,
50
- overrideFn,
51
- calculationType,
52
- horizontalScrollbarHeight: scrollbarHeight
53
- });
54
-
55
- /**
56
- * Number of rendered/visible rows.
57
- *
58
- * @type {number}
59
- */
60
- this.count = 0;
61
50
 
51
+ /**
52
+ * @param {ViewportRowsCalculatorOptions} options Object with all options specified for row viewport calculation.
53
+ */
54
+ constructor(options) {
55
+ _defineProperty(this, "count", 0);
62
56
  /**
63
57
  * Index of the first rendered/visible row (can be overwritten using overrideFn).
64
58
  *
65
59
  * @type {number|null}
66
60
  */
67
- this.startRow = null;
68
-
61
+ _defineProperty(this, "startRow", null);
69
62
  /**
70
63
  * Index of the last rendered/visible row (can be overwritten using overrideFn).
71
64
  *
72
65
  * @type {null}
73
66
  */
74
- this.endRow = null;
75
-
67
+ _defineProperty(this, "endRow", null);
76
68
  /**
77
69
  * Position of the first rendered/visible row (in px).
78
70
  *
79
71
  * @type {number|null}
80
72
  */
81
- this.startPosition = null;
82
- this.isVisibleInTrimmingContainer = false;
73
+ _defineProperty(this, "startPosition", null);
74
+ /**
75
+ * Determines if the viewport is visible in the trimming container.
76
+ *
77
+ * @type {boolean}
78
+ */
79
+ _defineProperty(this, "isVisibleInTrimmingContainer", false);
80
+ /**
81
+ * The calculator options.
82
+ *
83
+ * @type {ViewportRowsCalculatorOptions}
84
+ */
85
+ _classPrivateFieldInitSpec(this, _options, {
86
+ writable: true,
87
+ value: void 0
88
+ });
89
+ _classPrivateFieldSet(this, _options, options);
83
90
  this.calculate();
84
91
  }
85
92
 
@@ -87,15 +94,16 @@ class ViewportRowsCalculator {
87
94
  * Calculates viewport.
88
95
  */
89
96
  calculate() {
90
- const priv = privatePool.get(this);
91
- const calculationType = priv.calculationType;
92
- const overrideFn = priv.overrideFn;
93
- const rowHeightFn = priv.rowHeightFn;
94
- const scrollOffset = priv.scrollOffset;
95
- const zeroBasedScrollOffset = Math.max(priv.scrollOffset, 0);
96
- const totalRows = priv.totalRows;
97
- const viewportHeight = priv.viewportHeight;
98
- const horizontalScrollbarHeight = priv.horizontalScrollbarHeight || 0;
97
+ const {
98
+ calculationType,
99
+ overrideFn,
100
+ rowHeightFn,
101
+ scrollOffset,
102
+ totalRows,
103
+ viewportHeight
104
+ } = _classPrivateFieldGet(this, _options);
105
+ const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(this, _options).scrollOffset, 0);
106
+ const horizontalScrollbarHeight = _classPrivateFieldGet(this, _options).horizontalScrollbarHeight || 0;
99
107
  let sum = 0;
100
108
  let needReverse = true;
101
109
  const startPositions = [];
@@ -160,7 +168,7 @@ class ViewportRowsCalculator {
160
168
  overrideFn(this);
161
169
  }
162
170
  this.startPosition = startPositions[this.startRow];
163
- if (this.startPosition === void 0) {
171
+ if (this.startPosition === undefined) {
164
172
  this.startPosition = null;
165
173
  }
166
174
 
@@ -1,14 +1,34 @@
1
1
  import "core-js/modules/es.array.push.js";
2
2
  import "core-js/modules/es.array.at.js";
3
+ import "core-js/modules/es.error.cause.js";
4
+ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
5
+ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
6
+ 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; }
7
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
8
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
9
+ function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); }
10
+ function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }
11
+ function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
12
+ function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); }
13
+ function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } }
3
14
  import { RENDER_TYPE, FULLY_VISIBLE_TYPE } from "./constants.mjs";
4
- const privatePool = new WeakMap();
5
-
15
+ /**
16
+ * @typedef {object} ViewportRowsCalculatorOptions
17
+ * @property {number} viewportHeight Height of the viewport.
18
+ * @property {number} scrollOffset Current vertical scroll position of the viewport.
19
+ * @property {number} totalRows Total number of rows.
20
+ * @property {Function} rowHeightFn Function that returns the height of the row at a given index (in px).
21
+ * @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by MergeCells plugin).
22
+ * @property {string} calculationType String which describes types of calculation which will be performed.
23
+ * @property {number} horizontalScrollbarHeight The scrollbar height.
24
+ */
6
25
  /**
7
26
  * Calculates indexes of rows to render OR rows that are visible.
8
27
  * To redo the calculation, you need to create a new calculator.
9
28
  *
10
29
  * @class ViewportRowsCalculator
11
30
  */
31
+ var _options = /*#__PURE__*/new WeakMap();
12
32
  class ViewportRowsCalculator {
13
33
  /**
14
34
  * Default row height.
@@ -20,63 +40,50 @@ class ViewportRowsCalculator {
20
40
  }
21
41
 
22
42
  /**
23
- * @param {object} options Object with all options specified for row viewport calculation.
24
- * @param {number} options.viewportSize Height of the viewport.
25
- * @param {number} options.scrollOffset Current vertical scroll position of the viewport.
26
- * @param {number} options.totalItems Total number of rows.
27
- * @param {Function} options.itemSizeFn Function that returns the height of the row at a given index (in px).
28
- * @param {Function} options.overrideFn Function that changes calculated this.startRow, this.endRow (used by MergeCells plugin).
29
- * @param {string} options.calculationType String which describes types of calculation which will be performed.
30
- * @param {number} options.scrollbarHeight The scrollbar height.
43
+ * Number of rendered/visible rows.
44
+ *
45
+ * @type {number}
31
46
  */
32
- constructor() {
33
- let {
34
- viewportSize,
35
- scrollOffset,
36
- totalItems,
37
- itemSizeFn,
38
- overrideFn,
39
- calculationType,
40
- scrollbarHeight
41
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
42
- privatePool.set(this, {
43
- viewportHeight: viewportSize,
44
- scrollOffset,
45
- totalRows: totalItems,
46
- rowHeightFn: itemSizeFn,
47
- overrideFn,
48
- calculationType,
49
- horizontalScrollbarHeight: scrollbarHeight
50
- });
51
-
52
- /**
53
- * Number of rendered/visible rows.
54
- *
55
- * @type {number}
56
- */
57
- this.count = 0;
58
47
 
48
+ /**
49
+ * @param {ViewportRowsCalculatorOptions} options Object with all options specified for row viewport calculation.
50
+ */
51
+ constructor(options) {
52
+ _defineProperty(this, "count", 0);
59
53
  /**
60
54
  * Index of the first rendered/visible row (can be overwritten using overrideFn).
61
55
  *
62
56
  * @type {number|null}
63
57
  */
64
- this.startRow = null;
65
-
58
+ _defineProperty(this, "startRow", null);
66
59
  /**
67
60
  * Index of the last rendered/visible row (can be overwritten using overrideFn).
68
61
  *
69
62
  * @type {null}
70
63
  */
71
- this.endRow = null;
72
-
64
+ _defineProperty(this, "endRow", null);
73
65
  /**
74
66
  * Position of the first rendered/visible row (in px).
75
67
  *
76
68
  * @type {number|null}
77
69
  */
78
- this.startPosition = null;
79
- this.isVisibleInTrimmingContainer = false;
70
+ _defineProperty(this, "startPosition", null);
71
+ /**
72
+ * Determines if the viewport is visible in the trimming container.
73
+ *
74
+ * @type {boolean}
75
+ */
76
+ _defineProperty(this, "isVisibleInTrimmingContainer", false);
77
+ /**
78
+ * The calculator options.
79
+ *
80
+ * @type {ViewportRowsCalculatorOptions}
81
+ */
82
+ _classPrivateFieldInitSpec(this, _options, {
83
+ writable: true,
84
+ value: void 0
85
+ });
86
+ _classPrivateFieldSet(this, _options, options);
80
87
  this.calculate();
81
88
  }
82
89
 
@@ -84,15 +91,16 @@ class ViewportRowsCalculator {
84
91
  * Calculates viewport.
85
92
  */
86
93
  calculate() {
87
- const priv = privatePool.get(this);
88
- const calculationType = priv.calculationType;
89
- const overrideFn = priv.overrideFn;
90
- const rowHeightFn = priv.rowHeightFn;
91
- const scrollOffset = priv.scrollOffset;
92
- const zeroBasedScrollOffset = Math.max(priv.scrollOffset, 0);
93
- const totalRows = priv.totalRows;
94
- const viewportHeight = priv.viewportHeight;
95
- const horizontalScrollbarHeight = priv.horizontalScrollbarHeight || 0;
94
+ const {
95
+ calculationType,
96
+ overrideFn,
97
+ rowHeightFn,
98
+ scrollOffset,
99
+ totalRows,
100
+ viewportHeight
101
+ } = _classPrivateFieldGet(this, _options);
102
+ const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(this, _options).scrollOffset, 0);
103
+ const horizontalScrollbarHeight = _classPrivateFieldGet(this, _options).horizontalScrollbarHeight || 0;
96
104
  let sum = 0;
97
105
  let needReverse = true;
98
106
  const startPositions = [];
@@ -157,7 +165,7 @@ class ViewportRowsCalculator {
157
165
  overrideFn(this);
158
166
  }
159
167
  this.startPosition = startPositions[this.startRow];
160
- if (this.startPosition === void 0) {
168
+ if (this.startPosition === undefined) {
161
169
  this.startPosition = null;
162
170
  }
163
171
 
@@ -19,7 +19,13 @@ class Clone extends _base.default {
19
19
  */
20
20
  constructor(table, settings, clone) {
21
21
  super(table, settings);
22
+ /**
23
+ * @type {Walkontable}
24
+ */
22
25
  _defineProperty(this, "cloneSource", void 0);
26
+ /**
27
+ * @type {Overlay}
28
+ */
23
29
  _defineProperty(this, "cloneOverlay", void 0);
24
30
  const facadeGetter = this.wtSettings.getSetting('facade', this);
25
31
  this.cloneSource = clone.source;