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
@@ -103,8 +103,8 @@ function stringify(arr) {
103
103
  } else {
104
104
  str += val;
105
105
  }
106
- } else if (val === null || val === void 0) {
107
- // void 0 resolves to undefined
106
+ } else if (val === null || val === undefined) {
107
+ // undefined resolves to undefined
108
108
  str += '';
109
109
  } else {
110
110
  str += val;
@@ -98,8 +98,8 @@ export function stringify(arr) {
98
98
  } else {
99
99
  str += val;
100
100
  }
101
- } else if (val === null || val === void 0) {
102
- // void 0 resolves to undefined
101
+ } else if (val === null || val === undefined) {
102
+ // undefined resolves to undefined
103
103
  str += '';
104
104
  } else {
105
105
  str += val;
@@ -33,12 +33,12 @@ function autoResize() {
33
33
  } else if (!/^[a-zA-Z \.,\\\/\|0-9]$/.test(newChar)) {
34
34
  newChar = ".";
35
35
  }
36
- if (text.textContent !== void 0) {
36
+ if (text.textContent !== undefined) {
37
37
  text.textContent = el.value + newChar;
38
38
  } else {
39
39
  text.data = el.value + newChar; //IE8
40
40
  }
41
- // Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
41
+ // Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
42
42
  // `flex-direction` set as `column`.
43
43
  span.style.position = 'absolute';
44
44
  span.style.fontSize = getComputedStyle(el).fontSize;
@@ -29,12 +29,12 @@ export function autoResize() {
29
29
  } else if (!/^[a-zA-Z \.,\\\/\|0-9]$/.test(newChar)) {
30
30
  newChar = ".";
31
31
  }
32
- if (text.textContent !== void 0) {
32
+ if (text.textContent !== undefined) {
33
33
  text.textContent = el.value + newChar;
34
34
  } else {
35
35
  text.data = el.value + newChar; //IE8
36
36
  }
37
- // Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
37
+ // Won't expand the element size for displaying body as for example, `grid`, `inline-grid` or `flex` with
38
38
  // `flex-direction` set as `column`.
39
39
  span.style.position = 'absolute';
40
40
  span.style.fontSize = getComputedStyle(el).fontSize;
@@ -3,15 +3,39 @@
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} ViewportColumnsCalculatorOptions
20
+ * @property {number} viewportWidth Width of the viewport.
21
+ * @property {number} scrollOffset Current horizontal scroll position of the viewport.
22
+ * @property {number} totalColumns Total number of columns.
23
+ * @property {Function} columnWidthFn Function that returns the width of the column at a given index (in px).
24
+ * @property {Function} overrideFn Function that changes calculated this.startRow, this.endRow (used by
25
+ * MergeCells plugin).
26
+ * @property {string} calculationType String which describes types of calculation which will be performed.
27
+ * @property {string} inlineStartOffset Inline-start offset of the parent container.
28
+ * @property {string} stretchMode Stretch mode 'all' or 'last'.
29
+ * @property {Function} stretchingColumnWidthFn Function that returns the new width of the stretched column.
30
+ */
9
31
  /**
10
32
  * Calculates indexes of columns to render OR columns that are visible.
11
33
  * To redo the calculation, you need to create a new calculator.
12
34
  *
13
35
  * @class ViewportColumnsCalculator
14
36
  */
37
+ var _totalTargetWidth = /*#__PURE__*/new WeakMap();
38
+ var _options = /*#__PURE__*/new WeakMap();
15
39
  class ViewportColumnsCalculator {
16
40
  /**
17
41
  * Default column width.
@@ -23,75 +47,76 @@ class ViewportColumnsCalculator {
23
47
  }
24
48
 
25
49
  /**
26
- * @param {object} options Object with all options specified for column viewport calculation.
27
- * @param {number} options.viewportSize Width of the viewport.
28
- * @param {number} options.scrollOffset Current horizontal scroll position of the viewport.
29
- * @param {number} options.totalItems Total number of columns.
30
- * @param {Function} options.itemSizeFn Function that returns the width of the column at a given index (in px).
31
- * @param {Function} options.overrideFn Function that changes calculated this.startRow, this.endRow (used by
32
- * MergeCells plugin).
33
- * @param {string} options.calculationType String which describes types of calculation which will be performed.
34
- * @param {string} options.inlineStartOffset Inline-start offset of the parent container.
35
- * @param {string} [options.stretchMode] Stretch mode 'all' or 'last'.
36
- * @param {Function} [options.stretchingItemWidthFn] Function that returns the new width of the stretched column.
50
+ * Number of rendered/visible columns.
51
+ *
52
+ * @type {number}
37
53
  */
38
- constructor() {
39
- let {
40
- viewportSize,
41
- scrollOffset,
42
- totalItems,
43
- itemSizeFn,
44
- overrideFn,
45
- calculationType,
46
- stretchMode,
47
- stretchingItemWidthFn = width => width,
48
- inlineStartOffset
49
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
50
- privatePool.set(this, {
51
- viewportWidth: viewportSize,
52
- scrollOffset,
53
- totalColumns: totalItems,
54
- columnWidthFn: itemSizeFn,
55
- overrideFn,
56
- calculationType,
57
- stretchingColumnWidthFn: stretchingItemWidthFn,
58
- inlineStartOffset
59
- });
60
-
61
- /**
62
- * Number of rendered/visible columns.
63
- *
64
- * @type {number}
65
- */
66
- this.count = 0;
67
54
 
55
+ /**
56
+ * @param {ViewportColumnsCalculatorOptions} options Object with all options specified for column viewport calculation.
57
+ */
58
+ constructor(options) {
59
+ _defineProperty(this, "count", 0);
68
60
  /**
69
61
  * Index of the first rendered/visible column (can be overwritten using overrideFn).
70
62
  *
71
63
  * @type {number|null}
72
64
  */
73
- this.startColumn = null;
74
-
65
+ _defineProperty(this, "startColumn", null);
75
66
  /**
76
67
  * Index of the last rendered/visible column (can be overwritten using overrideFn).
77
68
  *
78
69
  * @type {null}
79
70
  */
80
- this.endColumn = null;
81
-
71
+ _defineProperty(this, "endColumn", null);
82
72
  /**
83
73
  * Position of the first rendered/visible column (in px).
84
74
  *
85
75
  * @type {number|null}
86
76
  */
87
- this.startPosition = null;
88
- this.isVisibleInTrimmingContainer = false;
89
- this.stretchAllRatio = 0;
90
- this.stretchLastWidth = 0;
91
- this.stretch = stretchMode;
92
- this.totalTargetWidth = 0;
93
- this.needVerifyLastColumnWidth = true;
94
- this.stretchAllColumnsWidth = [];
77
+ _defineProperty(this, "startPosition", null);
78
+ /**
79
+ * Determines if the viewport is visible in the trimming container.
80
+ *
81
+ * @type {boolean}
82
+ */
83
+ _defineProperty(this, "isVisibleInTrimmingContainer", false);
84
+ /**
85
+ * @type {number}
86
+ */
87
+ _defineProperty(this, "stretchAllRatio", 0);
88
+ /**
89
+ * @type {number}
90
+ */
91
+ _defineProperty(this, "stretchLastWidth", 0);
92
+ /**
93
+ * @type {number}
94
+ */
95
+ _classPrivateFieldInitSpec(this, _totalTargetWidth, {
96
+ writable: true,
97
+ value: 0
98
+ });
99
+ /**
100
+ * @type {boolean}
101
+ */
102
+ _defineProperty(this, "needVerifyLastColumnWidth", true);
103
+ /**
104
+ * @type {number[]}
105
+ */
106
+ _defineProperty(this, "stretchAllColumnsWidth", []);
107
+ /**
108
+ * The calculator options.
109
+ *
110
+ * @type {ViewportColumnsCalculatorOptions}
111
+ */
112
+ _classPrivateFieldInitSpec(this, _options, {
113
+ writable: true,
114
+ value: void 0
115
+ });
116
+ _classPrivateFieldSet(this, _options, options);
117
+ if (typeof _classPrivateFieldGet(this, _options).stretchingColumnWidthFn !== 'function') {
118
+ _classPrivateFieldGet(this, _options).stretchingColumnWidthFn = width => width;
119
+ }
95
120
  this.calculate();
96
121
  }
97
122
 
@@ -99,21 +124,22 @@ class ViewportColumnsCalculator {
99
124
  * Calculates viewport.
100
125
  */
101
126
  calculate() {
127
+ const {
128
+ calculationType,
129
+ overrideFn,
130
+ scrollOffset,
131
+ totalColumns,
132
+ viewportWidth
133
+ } = _classPrivateFieldGet(this, _options);
134
+ const zeroBasedScrollOffset = Math.max(_classPrivateFieldGet(this, _options).scrollOffset, 0);
135
+ // +1 pixel for row header width compensation for horizontal scroll > 0
136
+ const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
102
137
  let sum = 0;
103
138
  let needReverse = true;
104
139
  const startPositions = [];
105
140
  let columnWidth;
106
141
  let firstVisibleColumnWidth = 0;
107
142
  let lastVisibleColumnWidth = 0;
108
- const priv = privatePool.get(this);
109
- const calculationType = priv.calculationType;
110
- const overrideFn = priv.overrideFn;
111
- const scrollOffset = priv.scrollOffset;
112
- const zeroBasedScrollOffset = Math.max(priv.scrollOffset, 0);
113
- const totalColumns = priv.totalColumns;
114
- const viewportWidth = priv.viewportWidth;
115
- // +1 pixel for row header width compensation for horizontal scroll > 0
116
- const compensatedViewportWidth = zeroBasedScrollOffset > 0 ? viewportWidth + 1 : viewportWidth;
117
143
  for (let i = 0; i < totalColumns; i++) {
118
144
  columnWidth = this._getColumnWidth(i);
119
145
  if (sum <= zeroBasedScrollOffset && calculationType !== _constants.FULLY_VISIBLE_TYPE) {
@@ -121,7 +147,7 @@ class ViewportColumnsCalculator {
121
147
  firstVisibleColumnWidth = columnWidth;
122
148
  }
123
149
  if (sum >= zeroBasedScrollOffset && sum + (calculationType === _constants.FULLY_VISIBLE_TYPE ? columnWidth : 0) <= zeroBasedScrollOffset + compensatedViewportWidth) {
124
- if (this.startColumn === null || this.startColumn === void 0) {
150
+ if (this.startColumn === null || this.startColumn === undefined) {
125
151
  this.startColumn = i;
126
152
  firstVisibleColumnWidth = columnWidth;
127
153
  }
@@ -143,9 +169,9 @@ class ViewportColumnsCalculator {
143
169
  const inlineStartColumnOffset = calculationType === _constants.FULLY_VISIBLE_TYPE ? firstVisibleColumnWidth : 0;
144
170
  if (
145
171
  // the table is to the left of the viewport
146
- mostRightScrollOffset < -1 * priv.inlineStartOffset || scrollOffset > startPositions.at(-1) + inlineEndColumnOffset ||
172
+ mostRightScrollOffset < -1 * _classPrivateFieldGet(this, _options).inlineStartOffset || scrollOffset > startPositions.at(-1) + inlineEndColumnOffset ||
147
173
  // the table is to the right of the viewport
148
- -1 * priv.scrollOffset - priv.viewportWidth > -1 * inlineStartColumnOffset) {
174
+ -1 * _classPrivateFieldGet(this, _options).scrollOffset - _classPrivateFieldGet(this, _options).viewportWidth > -1 * inlineStartColumnOffset) {
149
175
  this.isVisibleInTrimmingContainer = false;
150
176
  } else {
151
177
  this.isVisibleInTrimmingContainer = true;
@@ -166,7 +192,7 @@ class ViewportColumnsCalculator {
166
192
  overrideFn(this);
167
193
  }
168
194
  this.startPosition = startPositions[this.startColumn];
169
- if (this.startPosition === void 0) {
195
+ if (this.startPosition === undefined) {
170
196
  this.startPosition = null;
171
197
  }
172
198
 
@@ -185,17 +211,16 @@ class ViewportColumnsCalculator {
185
211
  * @param {number} totalWidth The total width of the table.
186
212
  */
187
213
  refreshStretching(totalWidth) {
188
- if (this.stretch === 'none') {
214
+ if (_classPrivateFieldGet(this, _options).stretchMode === 'none') {
189
215
  return;
190
216
  }
191
217
  let totalColumnsWidth = totalWidth;
192
- this.totalTargetWidth = totalColumnsWidth;
193
- const priv = privatePool.get(this);
194
- const totalColumns = priv.totalColumns;
218
+ _classPrivateFieldSet(this, _totalTargetWidth, totalColumnsWidth);
219
+ const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
195
220
  let sumAll = 0;
196
221
  for (let i = 0; i < totalColumns; i++) {
197
222
  const columnWidth = this._getColumnWidth(i);
198
- const permanentColumnWidth = priv.stretchingColumnWidthFn(void 0, i);
223
+ const permanentColumnWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(undefined, i);
199
224
  if (typeof permanentColumnWidth === 'number') {
200
225
  totalColumnsWidth -= permanentColumnWidth;
201
226
  } else {
@@ -203,11 +228,11 @@ class ViewportColumnsCalculator {
203
228
  }
204
229
  }
205
230
  const remainingSize = totalColumnsWidth - sumAll;
206
- if (this.stretch === 'all' && remainingSize > 0) {
231
+ if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && remainingSize > 0) {
207
232
  this.stretchAllRatio = totalColumnsWidth / sumAll;
208
233
  this.stretchAllColumnsWidth = [];
209
234
  this.needVerifyLastColumnWidth = true;
210
- } else if (this.stretch === 'last' && totalColumnsWidth !== Infinity) {
235
+ } else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && totalColumnsWidth !== Infinity) {
211
236
  const columnWidth = this._getColumnWidth(totalColumns - 1);
212
237
  const lastColumnWidth = remainingSize + columnWidth;
213
238
  this.stretchLastWidth = lastColumnWidth >= 0 ? lastColumnWidth : columnWidth;
@@ -223,9 +248,9 @@ class ViewportColumnsCalculator {
223
248
  */
224
249
  getStretchedColumnWidth(column, baseWidth) {
225
250
  let result = null;
226
- if (this.stretch === 'all' && this.stretchAllRatio !== 0) {
251
+ if (_classPrivateFieldGet(this, _options).stretchMode === 'all' && this.stretchAllRatio !== 0) {
227
252
  result = this._getStretchedAllColumnWidth(column, baseWidth);
228
- } else if (this.stretch === 'last' && this.stretchLastWidth !== 0) {
253
+ } else if (_classPrivateFieldGet(this, _options).stretchMode === 'last' && this.stretchLastWidth !== 0) {
229
254
  result = this._getStretchedLastColumnWidth(column);
230
255
  }
231
256
  return result;
@@ -239,12 +264,11 @@ class ViewportColumnsCalculator {
239
264
  */
240
265
  _getStretchedAllColumnWidth(column, baseWidth) {
241
266
  let sumRatioWidth = 0;
242
- const priv = privatePool.get(this);
243
- const totalColumns = priv.totalColumns;
267
+ const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
244
268
  if (!this.stretchAllColumnsWidth[column]) {
245
269
  const stretchedWidth = Math.round(baseWidth * this.stretchAllRatio);
246
- const newStretchedWidth = priv.stretchingColumnWidthFn(stretchedWidth, column);
247
- if (newStretchedWidth === void 0) {
270
+ const newStretchedWidth = _classPrivateFieldGet(this, _options).stretchingColumnWidthFn(stretchedWidth, column);
271
+ if (newStretchedWidth === undefined) {
248
272
  this.stretchAllColumnsWidth[column] = stretchedWidth;
249
273
  } else {
250
274
  this.stretchAllColumnsWidth[column] = isNaN(newStretchedWidth) ? this._getColumnWidth(column) : newStretchedWidth;
@@ -255,8 +279,8 @@ class ViewportColumnsCalculator {
255
279
  for (let i = 0; i < this.stretchAllColumnsWidth.length; i++) {
256
280
  sumRatioWidth += this.stretchAllColumnsWidth[i];
257
281
  }
258
- if (sumRatioWidth !== this.totalTargetWidth) {
259
- this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += this.totalTargetWidth - sumRatioWidth;
282
+ if (sumRatioWidth !== _classPrivateFieldGet(this, _totalTargetWidth)) {
283
+ this.stretchAllColumnsWidth[this.stretchAllColumnsWidth.length - 1] += _classPrivateFieldGet(this, _totalTargetWidth) - sumRatioWidth;
260
284
  }
261
285
  }
262
286
  return this.stretchAllColumnsWidth[column];
@@ -268,8 +292,7 @@ class ViewportColumnsCalculator {
268
292
  * @private
269
293
  */
270
294
  _getStretchedLastColumnWidth(column) {
271
- const priv = privatePool.get(this);
272
- const totalColumns = priv.totalColumns;
295
+ const totalColumns = _classPrivateFieldGet(this, _options).totalColumns;
273
296
  if (column === totalColumns - 1) {
274
297
  return this.stretchLastWidth;
275
298
  }
@@ -282,7 +305,7 @@ class ViewportColumnsCalculator {
282
305
  * @private
283
306
  */
284
307
  _getColumnWidth(column) {
285
- let width = privatePool.get(this).columnWidthFn(column);
308
+ let width = _classPrivateFieldGet(this, _options).columnWidthFn(column);
286
309
  if (isNaN(width)) {
287
310
  width = ViewportColumnsCalculator.DEFAULT_WIDTH;
288
311
  }