handsontable 0.0.0-next-3d099da-20231208 → 0.0.0-next-16c18c1-20231212

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 (313) hide show
  1. package/3rdparty/walkontable/src/calculator/index.js +11 -6
  2. package/3rdparty/walkontable/src/calculator/index.mjs +5 -3
  3. package/3rdparty/walkontable/src/calculator/renderAllColumns.js +50 -0
  4. package/3rdparty/walkontable/src/calculator/renderAllColumns.mjs +46 -0
  5. package/3rdparty/walkontable/src/calculator/renderAllRows.js +50 -0
  6. package/3rdparty/walkontable/src/calculator/renderAllRows.mjs +46 -0
  7. package/3rdparty/walkontable/src/calculator/viewportColumns.js +3 -124
  8. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +4 -126
  9. package/3rdparty/walkontable/src/calculator/viewportRows.js +3 -3
  10. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +4 -5
  11. package/3rdparty/walkontable/src/cell/coords.js +2 -2
  12. package/3rdparty/walkontable/src/cell/coords.mjs +2 -2
  13. package/3rdparty/walkontable/src/cell/range.js +2 -2
  14. package/3rdparty/walkontable/src/cell/range.mjs +2 -2
  15. package/3rdparty/walkontable/src/core/_base.js +2 -14
  16. package/3rdparty/walkontable/src/core/_base.mjs +2 -14
  17. package/3rdparty/walkontable/src/core/clone.js +2 -2
  18. package/3rdparty/walkontable/src/core/clone.mjs +2 -2
  19. package/3rdparty/walkontable/src/core/core.js +0 -2
  20. package/3rdparty/walkontable/src/core/core.mjs +0 -2
  21. package/3rdparty/walkontable/src/facade/core.js +0 -9
  22. package/3rdparty/walkontable/src/facade/core.mjs +0 -9
  23. package/3rdparty/walkontable/src/filter/column.js +2 -2
  24. package/3rdparty/walkontable/src/filter/column.mjs +2 -2
  25. package/3rdparty/walkontable/src/filter/row.js +2 -2
  26. package/3rdparty/walkontable/src/filter/row.mjs +2 -2
  27. package/3rdparty/walkontable/src/index.js +3 -4
  28. package/3rdparty/walkontable/src/index.mjs +1 -2
  29. package/3rdparty/walkontable/src/overlay/_base.js +2 -2
  30. package/3rdparty/walkontable/src/overlay/_base.mjs +2 -2
  31. package/3rdparty/walkontable/src/overlay/bottom.js +2 -2
  32. package/3rdparty/walkontable/src/overlay/bottom.mjs +2 -2
  33. package/3rdparty/walkontable/src/overlay/top.js +2 -2
  34. package/3rdparty/walkontable/src/overlay/top.mjs +2 -2
  35. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.js +2 -2
  36. package/3rdparty/walkontable/src/overlay/topInlineStartCorner.mjs +2 -2
  37. package/3rdparty/walkontable/src/overlays.js +2 -5
  38. package/3rdparty/walkontable/src/overlays.mjs +2 -6
  39. package/3rdparty/walkontable/src/renderer/_base.js +2 -2
  40. package/3rdparty/walkontable/src/renderer/_base.mjs +2 -2
  41. package/3rdparty/walkontable/src/renderer/cells.js +2 -2
  42. package/3rdparty/walkontable/src/renderer/cells.mjs +2 -2
  43. package/3rdparty/walkontable/src/renderer/colGroup.js +10 -0
  44. package/3rdparty/walkontable/src/renderer/colGroup.mjs +10 -0
  45. package/3rdparty/walkontable/src/renderer/rowHeaders.js +2 -2
  46. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +2 -2
  47. package/3rdparty/walkontable/src/renderer/rows.js +6 -5
  48. package/3rdparty/walkontable/src/renderer/rows.mjs +6 -5
  49. package/3rdparty/walkontable/src/renderer/table.js +2 -2
  50. package/3rdparty/walkontable/src/renderer/table.mjs +2 -2
  51. package/3rdparty/walkontable/src/scroll.js +2 -2
  52. package/3rdparty/walkontable/src/scroll.mjs +2 -2
  53. package/3rdparty/walkontable/src/selection/manager.js +0 -1
  54. package/3rdparty/walkontable/src/selection/manager.mjs +0 -1
  55. package/3rdparty/walkontable/src/settings.js +5 -2
  56. package/3rdparty/walkontable/src/settings.mjs +4 -2
  57. package/3rdparty/walkontable/src/table.js +2 -3
  58. package/3rdparty/walkontable/src/table.mjs +2 -3
  59. package/3rdparty/walkontable/src/utils/column.js +29 -14
  60. package/3rdparty/walkontable/src/utils/column.mjs +29 -14
  61. package/3rdparty/walkontable/src/utils/columnStretching.js +219 -0
  62. package/3rdparty/walkontable/src/utils/columnStretching.mjs +215 -0
  63. package/3rdparty/walkontable/src/utils/nodesPool.js +2 -2
  64. package/3rdparty/walkontable/src/utils/nodesPool.mjs +2 -2
  65. package/3rdparty/walkontable/src/utils/orderView/view.js +2 -2
  66. package/3rdparty/walkontable/src/utils/orderView/view.mjs +2 -2
  67. package/3rdparty/walkontable/src/utils/orderView/viewSize.js +2 -2
  68. package/3rdparty/walkontable/src/utils/orderView/viewSize.mjs +2 -2
  69. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.js +2 -2
  70. package/3rdparty/walkontable/src/utils/orderView/viewSizeSet.mjs +2 -2
  71. package/3rdparty/walkontable/src/utils/row.js +2 -2
  72. package/3rdparty/walkontable/src/utils/row.mjs +2 -2
  73. package/3rdparty/walkontable/src/viewport.js +22 -17
  74. package/3rdparty/walkontable/src/viewport.mjs +23 -18
  75. package/base.js +4 -2
  76. package/base.mjs +2 -2
  77. package/core/focusCatcher/index.js +44 -6
  78. package/core/focusCatcher/index.mjs +44 -6
  79. package/core.js +0 -11
  80. package/core.mjs +0 -11
  81. package/dataMap/dataMap.js +3 -2
  82. package/dataMap/dataMap.mjs +2 -2
  83. package/dataMap/dataSource.js +2 -2
  84. package/dataMap/dataSource.mjs +2 -2
  85. package/dataMap/metaManager/lazyFactoryMap.js +2 -2
  86. package/dataMap/metaManager/lazyFactoryMap.mjs +2 -2
  87. package/dataMap/metaManager/metaLayers/cellMeta.js +2 -2
  88. package/dataMap/metaManager/metaLayers/cellMeta.mjs +2 -2
  89. package/dataMap/metaManager/metaLayers/columnMeta.js +2 -2
  90. package/dataMap/metaManager/metaLayers/columnMeta.mjs +2 -2
  91. package/dataMap/metaManager/metaLayers/globalMeta.js +2 -2
  92. package/dataMap/metaManager/metaLayers/globalMeta.mjs +2 -2
  93. package/dataMap/metaManager/metaLayers/tableMeta.js +2 -2
  94. package/dataMap/metaManager/metaLayers/tableMeta.mjs +2 -2
  95. package/dataMap/metaManager/metaSchema.js +28 -2
  96. package/dataMap/metaManager/metaSchema.mjs +28 -2
  97. package/dataMap/metaManager/mods/dynamicCellMeta.js +2 -2
  98. package/dataMap/metaManager/mods/dynamicCellMeta.mjs +2 -2
  99. package/dataMap/metaManager/mods/extendMetaProperties.js +14 -2
  100. package/dataMap/metaManager/mods/extendMetaProperties.mjs +14 -2
  101. package/dist/handsontable.css +2 -2
  102. package/dist/handsontable.full.css +3 -3
  103. package/dist/handsontable.full.js +3991 -5589
  104. package/dist/handsontable.full.min.css +3 -3
  105. package/dist/handsontable.full.min.js +66 -71
  106. package/dist/handsontable.js +3070 -4317
  107. package/dist/handsontable.min.css +2 -2
  108. package/dist/handsontable.min.js +35 -39
  109. package/editorManager.js +5 -6
  110. package/editorManager.mjs +5 -6
  111. package/editors/autocompleteEditor/autocompleteEditor.js +2 -4
  112. package/editors/autocompleteEditor/autocompleteEditor.mjs +2 -4
  113. package/editors/baseEditor/baseEditor.js +2 -2
  114. package/editors/baseEditor/baseEditor.mjs +2 -2
  115. package/editors/dateEditor/dateEditor.d.ts +1 -1
  116. package/editors/dateEditor/dateEditor.js +6 -3
  117. package/editors/dateEditor/dateEditor.mjs +6 -3
  118. package/editors/handsontableEditor/handsontableEditor.js +0 -1
  119. package/editors/handsontableEditor/handsontableEditor.mjs +0 -1
  120. package/editors/textEditor/textEditor.js +2 -6
  121. package/editors/textEditor/textEditor.mjs +2 -6
  122. package/eventManager.js +2 -2
  123. package/eventManager.mjs +2 -2
  124. package/helpers/browser.js +5 -2
  125. package/helpers/browser.mjs +5 -2
  126. package/helpers/feature.js +10 -0
  127. package/helpers/feature.mjs +9 -0
  128. package/helpers/mixed.js +1 -1
  129. package/helpers/mixed.mjs +1 -1
  130. package/package.json +3 -4
  131. package/pluginHooks.d.ts +6 -29
  132. package/pluginHooks.js +67 -125
  133. package/pluginHooks.mjs +64 -124
  134. package/plugins/autoColumnSize/autoColumnSize.js +2 -2
  135. package/plugins/autoColumnSize/autoColumnSize.mjs +2 -2
  136. package/plugins/autoRowSize/autoRowSize.js +2 -2
  137. package/plugins/autoRowSize/autoRowSize.mjs +2 -2
  138. package/plugins/autofill/autofill.js +2 -2
  139. package/plugins/autofill/autofill.mjs +2 -2
  140. package/plugins/base/base.js +2 -2
  141. package/plugins/base/base.mjs +2 -2
  142. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.js +2 -2
  143. package/plugins/bindRowsWithHeaders/bindRowsWithHeaders.mjs +2 -2
  144. package/plugins/collapsibleColumns/collapsibleColumns.js +2 -2
  145. package/plugins/collapsibleColumns/collapsibleColumns.mjs +2 -2
  146. package/plugins/columnSorting/columnSorting.js +2 -2
  147. package/plugins/columnSorting/columnSorting.mjs +2 -2
  148. package/plugins/columnSorting/columnStatesManager.js +2 -2
  149. package/plugins/columnSorting/columnStatesManager.mjs +2 -2
  150. package/plugins/columnSummary/columnSummary.js +2 -2
  151. package/plugins/columnSummary/columnSummary.mjs +2 -2
  152. package/plugins/columnSummary/endpoints.js +2 -2
  153. package/plugins/columnSummary/endpoints.mjs +2 -2
  154. package/plugins/comments/commentEditor.js +2 -2
  155. package/plugins/comments/commentEditor.mjs +2 -2
  156. package/plugins/comments/comments.js +2 -2
  157. package/plugins/comments/comments.mjs +2 -2
  158. package/plugins/comments/displaySwitch.js +2 -2
  159. package/plugins/comments/displaySwitch.mjs +2 -2
  160. package/plugins/contextMenu/commandExecutor.js +2 -2
  161. package/plugins/contextMenu/commandExecutor.mjs +2 -2
  162. package/plugins/contextMenu/contextMenu.js +2 -2
  163. package/plugins/contextMenu/contextMenu.mjs +2 -2
  164. package/plugins/contextMenu/itemsFactory.js +2 -2
  165. package/plugins/contextMenu/itemsFactory.mjs +2 -2
  166. package/plugins/contextMenu/menu/cursor.js +2 -2
  167. package/plugins/contextMenu/menu/cursor.mjs +2 -2
  168. package/plugins/contextMenu/menu/menu.js +2 -2
  169. package/plugins/contextMenu/menu/menu.mjs +2 -2
  170. package/plugins/copyPaste/clipboardData.js +18 -0
  171. package/plugins/copyPaste/clipboardData.mjs +14 -0
  172. package/plugins/copyPaste/copyPaste.js +131 -53
  173. package/plugins/copyPaste/copyPaste.mjs +134 -56
  174. package/plugins/copyPaste/copyableRanges.js +43 -7
  175. package/plugins/copyPaste/copyableRanges.mjs +42 -7
  176. package/plugins/copyPaste/pasteEvent.mjs +1 -1
  177. package/plugins/customBorders/customBorders.js +2 -7
  178. package/plugins/customBorders/customBorders.mjs +2 -7
  179. package/plugins/customBorders/utils.js +0 -1
  180. package/plugins/customBorders/utils.mjs +0 -1
  181. package/plugins/dragToScroll/dragToScroll.js +2 -2
  182. package/plugins/dragToScroll/dragToScroll.mjs +2 -2
  183. package/plugins/dropdownMenu/dropdownMenu.js +2 -2
  184. package/plugins/dropdownMenu/dropdownMenu.mjs +2 -2
  185. package/plugins/exportFile/dataProvider.js +2 -2
  186. package/plugins/exportFile/dataProvider.mjs +2 -2
  187. package/plugins/exportFile/types/_base.js +2 -2
  188. package/plugins/exportFile/types/_base.mjs +2 -2
  189. package/plugins/filters/component/_base.js +2 -2
  190. package/plugins/filters/component/_base.mjs +2 -2
  191. package/plugins/filters/component/actionBar.js +2 -2
  192. package/plugins/filters/component/actionBar.mjs +2 -2
  193. package/plugins/filters/component/condition.js +2 -2
  194. package/plugins/filters/component/condition.mjs +2 -2
  195. package/plugins/filters/component/operators.js +2 -2
  196. package/plugins/filters/component/operators.mjs +2 -2
  197. package/plugins/filters/component/value.js +2 -2
  198. package/plugins/filters/component/value.mjs +2 -2
  199. package/plugins/filters/conditionCollection.js +2 -2
  200. package/plugins/filters/conditionCollection.mjs +2 -2
  201. package/plugins/filters/conditionUpdateObserver.js +2 -2
  202. package/plugins/filters/conditionUpdateObserver.mjs +2 -2
  203. package/plugins/filters/dataFilter.js +2 -2
  204. package/plugins/filters/dataFilter.mjs +2 -2
  205. package/plugins/filters/filters.js +2 -2
  206. package/plugins/filters/filters.mjs +2 -2
  207. package/plugins/filters/ui/_base.js +2 -2
  208. package/plugins/filters/ui/_base.mjs +2 -2
  209. package/plugins/filters/ui/radioInput.js +1 -1
  210. package/plugins/filters/ui/radioInput.mjs +1 -1
  211. package/plugins/formulas/formulas.js +2 -4
  212. package/plugins/formulas/formulas.mjs +2 -4
  213. package/plugins/formulas/indexSyncer/axisSyncer.js +0 -1
  214. package/plugins/formulas/indexSyncer/axisSyncer.mjs +0 -1
  215. package/plugins/manualColumnMove/ui/_base.js +2 -2
  216. package/plugins/manualColumnMove/ui/_base.mjs +2 -2
  217. package/plugins/manualColumnResize/manualColumnResize.js +0 -1
  218. package/plugins/manualColumnResize/manualColumnResize.mjs +0 -1
  219. package/plugins/manualRowMove/ui/_base.js +2 -2
  220. package/plugins/manualRowMove/ui/_base.mjs +2 -2
  221. package/plugins/mergeCells/calculations/autofill.js +2 -2
  222. package/plugins/mergeCells/calculations/autofill.mjs +2 -2
  223. package/plugins/mergeCells/calculations/selection.js +2 -2
  224. package/plugins/mergeCells/calculations/selection.mjs +2 -2
  225. package/plugins/mergeCells/cellCoords.js +2 -2
  226. package/plugins/mergeCells/cellCoords.mjs +2 -2
  227. package/plugins/mergeCells/cellsCollection.js +2 -2
  228. package/plugins/mergeCells/cellsCollection.mjs +2 -2
  229. package/plugins/mergeCells/mergeCells.js +3 -129
  230. package/plugins/mergeCells/mergeCells.mjs +3 -129
  231. package/plugins/multiColumnSorting/multiColumnSorting.js +2 -2
  232. package/plugins/multiColumnSorting/multiColumnSorting.mjs +2 -2
  233. package/plugins/multipleSelectionHandles/multipleSelectionHandles.js +2 -2
  234. package/plugins/multipleSelectionHandles/multipleSelectionHandles.mjs +2 -2
  235. package/plugins/nestedHeaders/nestedHeaders.js +43 -89
  236. package/plugins/nestedHeaders/nestedHeaders.mjs +44 -90
  237. package/plugins/nestedHeaders/stateManager/headersTree.js +0 -1
  238. package/plugins/nestedHeaders/stateManager/headersTree.mjs +0 -1
  239. package/plugins/nestedHeaders/utils/ghostTable.js +2 -2
  240. package/plugins/nestedHeaders/utils/ghostTable.mjs +2 -2
  241. package/plugins/nestedRows/data/dataManager.js +2 -2
  242. package/plugins/nestedRows/data/dataManager.mjs +2 -2
  243. package/plugins/nestedRows/nestedRows.js +2 -2
  244. package/plugins/nestedRows/nestedRows.mjs +2 -2
  245. package/plugins/nestedRows/ui/_base.js +2 -2
  246. package/plugins/nestedRows/ui/_base.mjs +2 -2
  247. package/plugins/nestedRows/ui/contextMenu.js +2 -2
  248. package/plugins/nestedRows/ui/contextMenu.mjs +2 -2
  249. package/plugins/nestedRows/utils/rowMoveController.js +2 -2
  250. package/plugins/nestedRows/utils/rowMoveController.mjs +2 -2
  251. package/plugins/persistentState/persistentState.js +2 -2
  252. package/plugins/persistentState/persistentState.mjs +2 -2
  253. package/plugins/persistentState/storage.js +2 -2
  254. package/plugins/persistentState/storage.mjs +2 -2
  255. package/plugins/search/search.js +2 -2
  256. package/plugins/search/search.mjs +2 -2
  257. package/plugins/touchScroll/touchScroll.js +2 -2
  258. package/plugins/touchScroll/touchScroll.mjs +2 -2
  259. package/plugins/trimRows/trimRows.js +2 -2
  260. package/plugins/trimRows/trimRows.mjs +2 -2
  261. package/plugins/undoRedo/undoRedo.js +0 -2
  262. package/plugins/undoRedo/undoRedo.mjs +0 -2
  263. package/renderers/autocompleteRenderer/autocompleteRenderer.js +0 -1
  264. package/renderers/autocompleteRenderer/autocompleteRenderer.mjs +0 -1
  265. package/renderers/checkboxRenderer/checkboxRenderer.js +0 -2
  266. package/renderers/checkboxRenderer/checkboxRenderer.mjs +0 -2
  267. package/selection/highlight/highlight.js +2 -3
  268. package/selection/highlight/highlight.mjs +2 -3
  269. package/selection/highlight/visualSelection.js +2 -2
  270. package/selection/highlight/visualSelection.mjs +2 -2
  271. package/selection/index.js +1 -3
  272. package/selection/index.mjs +2 -2
  273. package/selection/range.js +2 -2
  274. package/selection/range.mjs +2 -2
  275. package/selection/selection.js +2 -2
  276. package/selection/selection.mjs +2 -2
  277. package/selection/utils.js +0 -34
  278. package/selection/utils.mjs +0 -33
  279. package/settings.d.ts +2 -1
  280. package/tableView.js +3 -4
  281. package/tableView.mjs +3 -4
  282. package/translations/indexMapper.js +4 -3
  283. package/translations/indexMapper.mjs +2 -2
  284. package/translations/mapCollections/aggregatedCollection.js +2 -2
  285. package/translations/mapCollections/aggregatedCollection.mjs +2 -2
  286. package/translations/mapCollections/mapCollection.js +2 -2
  287. package/translations/mapCollections/mapCollection.mjs +2 -2
  288. package/translations/maps/indexMap.js +2 -2
  289. package/translations/maps/indexMap.mjs +2 -2
  290. package/translations/maps/linkedPhysicalIndexToValueMap.js +2 -2
  291. package/translations/maps/linkedPhysicalIndexToValueMap.mjs +2 -2
  292. package/utils/dataStructures/linkedList.js +2 -2
  293. package/utils/dataStructures/linkedList.mjs +2 -2
  294. package/utils/dataStructures/tree.js +2 -2
  295. package/utils/dataStructures/tree.mjs +2 -2
  296. package/utils/ghostTable.js +2 -2
  297. package/utils/ghostTable.mjs +2 -2
  298. package/utils/interval.js +2 -2
  299. package/utils/interval.mjs +2 -2
  300. package/utils/parseTable.js +84 -538
  301. package/utils/parseTable.mjs +83 -534
  302. package/utils/samplesGenerator.js +2 -2
  303. package/utils/samplesGenerator.mjs +2 -2
  304. package/validators/timeValidator/timeValidator.js +0 -1
  305. package/validators/timeValidator/timeValidator.mjs +0 -1
  306. package/plugins/copyPaste/clipboardData/clipboardData.js +0 -588
  307. package/plugins/copyPaste/clipboardData/clipboardData.mjs +0 -584
  308. package/plugins/copyPaste/clipboardData/copyClipboardData.js +0 -69
  309. package/plugins/copyPaste/clipboardData/copyClipboardData.mjs +0 -65
  310. package/plugins/copyPaste/clipboardData/index.js +0 -9
  311. package/plugins/copyPaste/clipboardData/index.mjs +0 -4
  312. package/plugins/copyPaste/clipboardData/pasteClipboardData.js +0 -81
  313. package/plugins/copyPaste/clipboardData/pasteClipboardData.mjs +0 -77
@@ -1,6 +1,6 @@
1
1
  import { getScrollbarWidth, getStyle, offset, outerHeight, outerWidth } from "../../../helpers/dom/element.mjs";
2
2
  import { objectEach } from "../../../helpers/object.mjs";
3
- import { RENDER_TYPE, FULLY_VISIBLE_TYPE, ViewportColumnsCalculator, ViewportRowsCalculator } from "./calculator/index.mjs";
3
+ import { RENDER_TYPE, FULLY_VISIBLE_TYPE, RenderAllColumnsCalculator, RenderAllRowsCalculator, ViewportColumnsCalculator, ViewportRowsCalculator } from "./calculator/index.mjs";
4
4
  /**
5
5
  * @class Viewport
6
6
  */
@@ -252,15 +252,15 @@ class Viewport {
252
252
  wtSettings,
253
253
  wtTable
254
254
  } = this;
255
- let height;
255
+ if (wtSettings.getSetting('renderAllRows') && calculationType === RENDER_TYPE) {
256
+ return new RenderAllRowsCalculator({
257
+ totalRows: wtSettings.getSetting('totalRows')
258
+ });
259
+ }
260
+ let height = this.getViewportHeight();
256
261
  let scrollbarHeight;
257
262
  let fixedRowsHeight;
258
263
  this.rowHeaderWidth = NaN;
259
- if (wtSettings.getSetting('renderAllRows') && calculationType === RENDER_TYPE) {
260
- height = Infinity;
261
- } else {
262
- height = this.getViewportHeight();
263
- }
264
264
  let pos = this.dataAccessObject.topScrollPosition - this.dataAccessObject.topParentOffset;
265
265
  const fixedRowsTop = wtSettings.getSetting('fixedRowsTop');
266
266
  const fixedRowsBottom = wtSettings.getSetting('fixedRowsBottom');
@@ -305,6 +305,11 @@ class Viewport {
305
305
  wtSettings,
306
306
  wtTable
307
307
  } = this;
308
+ if (wtSettings.getSetting('renderAllColumns') && calculationType === RENDER_TYPE) {
309
+ return new RenderAllColumnsCalculator({
310
+ totalColumns: wtSettings.getSetting('totalColumns')
311
+ });
312
+ }
308
313
  let width = this.getViewportWidth();
309
314
  let pos = Math.abs(this.dataAccessObject.inlineStartScrollPosition) - this.dataAccessObject.inlineStartParentOffset;
310
315
  this.columnHeaderHeight = NaN;
@@ -324,10 +329,6 @@ class Viewport {
324
329
  columnWidthFn: sourceCol => wtTable.getColumnWidth(sourceCol),
325
330
  overrideFn: wtSettings.getSettingPure('viewportColumnCalculatorOverride'),
326
331
  calculationType,
327
- stretchMode: wtSettings.getSetting('stretchH'),
328
- stretchingColumnWidthFn: (stretchedWidth, column) => {
329
- return wtSettings.getSetting('onBeforeStretchingColumnWidth', stretchedWidth, column);
330
- },
331
332
  inlineStartOffset: this.dataAccessObject.inlineStartParentOffset
332
333
  });
333
334
  }
@@ -342,22 +343,26 @@ class Viewport {
342
343
  */
343
344
  createRenderCalculators() {
344
345
  let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
345
- let runFastDraw = fastDraw;
346
- if (runFastDraw) {
346
+ const {
347
+ wtSettings
348
+ } = this;
349
+ if (fastDraw && !wtSettings.getSetting('renderAllRows')) {
347
350
  const proposedRowsVisibleCalculator = this.createRowsCalculator(FULLY_VISIBLE_TYPE);
351
+ fastDraw = this.areAllProposedVisibleRowsAlreadyRendered(proposedRowsVisibleCalculator);
352
+ }
353
+ if (fastDraw && !wtSettings.getSetting('renderAllColumns')) {
348
354
  const proposedColumnsVisibleCalculator = this.createColumnsCalculator(FULLY_VISIBLE_TYPE);
349
- if (!(this.areAllProposedVisibleRowsAlreadyRendered(proposedRowsVisibleCalculator) && this.areAllProposedVisibleColumnsAlreadyRendered(proposedColumnsVisibleCalculator))) {
350
- runFastDraw = false;
351
- }
355
+ fastDraw = this.areAllProposedVisibleColumnsAlreadyRendered(proposedColumnsVisibleCalculator);
352
356
  }
353
- if (!runFastDraw) {
357
+ if (!fastDraw) {
354
358
  this.rowsRenderCalculator = this.createRowsCalculator(RENDER_TYPE);
355
359
  this.columnsRenderCalculator = this.createColumnsCalculator(RENDER_TYPE);
356
360
  }
361
+
357
362
  // delete temporarily to make sure that renderers always use rowsRenderCalculator, not rowsVisibleCalculator
358
363
  this.rowsVisibleCalculator = null;
359
364
  this.columnsVisibleCalculator = null;
360
- return runFastDraw;
365
+ return fastDraw;
361
366
  }
362
367
 
363
368
  /**
package/base.js CHANGED
@@ -15,7 +15,9 @@ exports.CellRange = _src.CellRange;
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
16
  // FIXME: Bug in eslint-plugin-import: https://github.com/benmosher/eslint-plugin-import/issues/1883
17
17
  /* eslint-disable import/named */
18
+
18
19
  /* eslint-enable import/named */
20
+
19
21
  // register default mandatory cell type for the Base package
20
22
  (0, _registry2.registerCellType)(_textType.TextCellType);
21
23
 
@@ -43,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
43
45
  Handsontable.CellCoords = _src.CellCoords;
44
46
  Handsontable.CellRange = _src.CellRange;
45
47
  Handsontable.packageName = 'handsontable';
46
- Handsontable.buildDate = "08/12/2023 08:37:33";
47
- Handsontable.version = "0.0.0-next-3d099da-20231208";
48
+ Handsontable.buildDate = "12/12/2023 09:51:08";
49
+ Handsontable.version = "0.0.0-next-16c18c1-20231212";
48
50
  Handsontable.languages = {
49
51
  dictionaryKeys: _registry.dictionaryKeys,
50
52
  getLanguageDictionary: _registry.getLanguageDictionary,
package/base.mjs CHANGED
@@ -35,8 +35,8 @@ Handsontable.hooks = Hooks.getSingleton();
35
35
  Handsontable.CellCoords = CellCoords;
36
36
  Handsontable.CellRange = CellRange;
37
37
  Handsontable.packageName = 'handsontable';
38
- Handsontable.buildDate = "08/12/2023 08:37:39";
39
- Handsontable.version = "0.0.0-next-3d099da-20231208";
38
+ Handsontable.buildDate = "12/12/2023 09:51:14";
39
+ Handsontable.version = "0.0.0-next-16c18c1-20231212";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
@@ -12,14 +12,15 @@ var _focusDetector = require("./focusDetector");
12
12
  * @param {Core} hot The Handsontable instance.
13
13
  */
14
14
  function installFocusCatcher(hot) {
15
+ const clampCoordsIfNeeded = normalizeCoordsIfNeeded(hot);
15
16
  let recentlyAddedFocusCoords;
16
17
  const {
17
18
  activate,
18
19
  deactivate
19
20
  } = (0, _focusDetector.installFocusDetector)(hot, {
20
21
  onFocusFromTop() {
21
- var _recentlyAddedFocusCo;
22
- const mostTopStartCoords = (_recentlyAddedFocusCo = recentlyAddedFocusCoords) !== null && _recentlyAddedFocusCo !== void 0 ? _recentlyAddedFocusCo : getMostTopStartPosition(hot);
22
+ var _clampCoordsIfNeeded;
23
+ const mostTopStartCoords = (_clampCoordsIfNeeded = clampCoordsIfNeeded(recentlyAddedFocusCoords)) !== null && _clampCoordsIfNeeded !== void 0 ? _clampCoordsIfNeeded : getMostTopStartPosition(hot);
23
24
  if (mostTopStartCoords) {
24
25
  hot.runHooks('modifyFocusOnTabNavigation', 'from_above', mostTopStartCoords);
25
26
  hot.selectCell(mostTopStartCoords.row, mostTopStartCoords.col);
@@ -27,8 +28,8 @@ function installFocusCatcher(hot) {
27
28
  hot.listen();
28
29
  },
29
30
  onFocusFromBottom() {
30
- var _recentlyAddedFocusCo2;
31
- const mostBottomEndCoords = (_recentlyAddedFocusCo2 = recentlyAddedFocusCoords) !== null && _recentlyAddedFocusCo2 !== void 0 ? _recentlyAddedFocusCo2 : getMostBottomEndPosition(hot);
31
+ var _clampCoordsIfNeeded2;
32
+ const mostBottomEndCoords = (_clampCoordsIfNeeded2 = clampCoordsIfNeeded(recentlyAddedFocusCoords)) !== null && _clampCoordsIfNeeded2 !== void 0 ? _clampCoordsIfNeeded2 : getMostBottomEndPosition(hot);
32
33
  if (mostBottomEndCoords) {
33
34
  hot.runHooks('modifyFocusOnTabNavigation', 'from_below', mostBottomEndCoords);
34
35
  hot.selectCell(mostBottomEndCoords.row, mostBottomEndCoords.col);
@@ -42,10 +43,12 @@ function installFocusCatcher(hot) {
42
43
  };
43
44
  let isSavingCoordsEnabled = true;
44
45
  let isTabOrShiftTabPressed = false;
46
+ let preventViewportScroll = false;
45
47
  hot.addHook('afterListen', () => deactivate());
46
48
  hot.addHook('afterUnlisten', () => activate());
47
49
  hot.addHook('afterSelection', (row, column, row2, column2, preventScrolling) => {
48
- if (isTabOrShiftTabPressed && rowWrapState.wrapped && rowWrapState.flipped) {
50
+ if (isTabOrShiftTabPressed && (rowWrapState.wrapped && rowWrapState.flipped || preventViewportScroll)) {
51
+ preventViewportScroll = false;
49
52
  preventScrolling.value = true;
50
53
  }
51
54
  if (isSavingCoordsEnabled) {
@@ -77,10 +80,16 @@ function installFocusCatcher(hot) {
77
80
  hot.getShortcutManager().getContext('grid').addShortcuts([{
78
81
  ...shortcutOptions,
79
82
  callback: () => {
83
+ const {
84
+ tabNavigation
85
+ } = hot.getSettings();
80
86
  isTabOrShiftTabPressed = true;
81
- if (hot.getSelectedRangeLast() && !hot.getSettings().tabNavigation) {
87
+ if (hot.getSelectedRangeLast() && !tabNavigation) {
82
88
  isSavingCoordsEnabled = false;
83
89
  }
90
+ if (!tabNavigation) {
91
+ preventViewportScroll = true;
92
+ }
84
93
  },
85
94
  position: 'before'
86
95
  }, {
@@ -165,4 +174,33 @@ function getMostBottomEndPosition(hot) {
165
174
  endColumn = -1;
166
175
  }
167
176
  return hot._createCellCoords((_rowIndexMapper$getVi = rowIndexMapper.getVisualFromRenderableIndex(bottomRow)) !== null && _rowIndexMapper$getVi !== void 0 ? _rowIndexMapper$getVi : bottomRow, (_columnIndexMapper$ge = columnIndexMapper.getVisualFromRenderableIndex(endColumn)) !== null && _columnIndexMapper$ge !== void 0 ? _columnIndexMapper$ge : endColumn);
177
+ }
178
+
179
+ /**
180
+ * Normalizes the coordinates (clamps to nearest visible cell position within dataset range).
181
+ *
182
+ * @param {Core} hot The Handsontable instance.
183
+ * @returns {function(Coords | undefined): Coords | null}
184
+ */
185
+ function normalizeCoordsIfNeeded(hot) {
186
+ return coords => {
187
+ if (!coords) {
188
+ return null;
189
+ }
190
+ const mostTopStartCoords = getMostTopStartPosition(hot);
191
+ const mostBottomEndCoords = getMostBottomEndPosition(hot);
192
+ if (coords.col < mostTopStartCoords.col) {
193
+ coords.col = mostTopStartCoords.col;
194
+ }
195
+ if (coords.col > mostBottomEndCoords.col) {
196
+ coords.col = mostBottomEndCoords.col;
197
+ }
198
+ if (coords.row < mostTopStartCoords.row) {
199
+ coords.row = mostTopStartCoords.row;
200
+ }
201
+ if (coords.row > mostBottomEndCoords.row) {
202
+ coords.row = mostBottomEndCoords.row;
203
+ }
204
+ return coords;
205
+ };
168
206
  }
@@ -8,14 +8,15 @@ import { installFocusDetector } from "./focusDetector.mjs";
8
8
  * @param {Core} hot The Handsontable instance.
9
9
  */
10
10
  export function installFocusCatcher(hot) {
11
+ const clampCoordsIfNeeded = normalizeCoordsIfNeeded(hot);
11
12
  let recentlyAddedFocusCoords;
12
13
  const {
13
14
  activate,
14
15
  deactivate
15
16
  } = installFocusDetector(hot, {
16
17
  onFocusFromTop() {
17
- var _recentlyAddedFocusCo;
18
- const mostTopStartCoords = (_recentlyAddedFocusCo = recentlyAddedFocusCoords) !== null && _recentlyAddedFocusCo !== void 0 ? _recentlyAddedFocusCo : getMostTopStartPosition(hot);
18
+ var _clampCoordsIfNeeded;
19
+ const mostTopStartCoords = (_clampCoordsIfNeeded = clampCoordsIfNeeded(recentlyAddedFocusCoords)) !== null && _clampCoordsIfNeeded !== void 0 ? _clampCoordsIfNeeded : getMostTopStartPosition(hot);
19
20
  if (mostTopStartCoords) {
20
21
  hot.runHooks('modifyFocusOnTabNavigation', 'from_above', mostTopStartCoords);
21
22
  hot.selectCell(mostTopStartCoords.row, mostTopStartCoords.col);
@@ -23,8 +24,8 @@ export function installFocusCatcher(hot) {
23
24
  hot.listen();
24
25
  },
25
26
  onFocusFromBottom() {
26
- var _recentlyAddedFocusCo2;
27
- const mostBottomEndCoords = (_recentlyAddedFocusCo2 = recentlyAddedFocusCoords) !== null && _recentlyAddedFocusCo2 !== void 0 ? _recentlyAddedFocusCo2 : getMostBottomEndPosition(hot);
27
+ var _clampCoordsIfNeeded2;
28
+ const mostBottomEndCoords = (_clampCoordsIfNeeded2 = clampCoordsIfNeeded(recentlyAddedFocusCoords)) !== null && _clampCoordsIfNeeded2 !== void 0 ? _clampCoordsIfNeeded2 : getMostBottomEndPosition(hot);
28
29
  if (mostBottomEndCoords) {
29
30
  hot.runHooks('modifyFocusOnTabNavigation', 'from_below', mostBottomEndCoords);
30
31
  hot.selectCell(mostBottomEndCoords.row, mostBottomEndCoords.col);
@@ -38,10 +39,12 @@ export function installFocusCatcher(hot) {
38
39
  };
39
40
  let isSavingCoordsEnabled = true;
40
41
  let isTabOrShiftTabPressed = false;
42
+ let preventViewportScroll = false;
41
43
  hot.addHook('afterListen', () => deactivate());
42
44
  hot.addHook('afterUnlisten', () => activate());
43
45
  hot.addHook('afterSelection', (row, column, row2, column2, preventScrolling) => {
44
- if (isTabOrShiftTabPressed && rowWrapState.wrapped && rowWrapState.flipped) {
46
+ if (isTabOrShiftTabPressed && (rowWrapState.wrapped && rowWrapState.flipped || preventViewportScroll)) {
47
+ preventViewportScroll = false;
45
48
  preventScrolling.value = true;
46
49
  }
47
50
  if (isSavingCoordsEnabled) {
@@ -73,10 +76,16 @@ export function installFocusCatcher(hot) {
73
76
  hot.getShortcutManager().getContext('grid').addShortcuts([{
74
77
  ...shortcutOptions,
75
78
  callback: () => {
79
+ const {
80
+ tabNavigation
81
+ } = hot.getSettings();
76
82
  isTabOrShiftTabPressed = true;
77
- if (hot.getSelectedRangeLast() && !hot.getSettings().tabNavigation) {
83
+ if (hot.getSelectedRangeLast() && !tabNavigation) {
78
84
  isSavingCoordsEnabled = false;
79
85
  }
86
+ if (!tabNavigation) {
87
+ preventViewportScroll = true;
88
+ }
80
89
  },
81
90
  position: 'before'
82
91
  }, {
@@ -161,4 +170,33 @@ function getMostBottomEndPosition(hot) {
161
170
  endColumn = -1;
162
171
  }
163
172
  return hot._createCellCoords((_rowIndexMapper$getVi = rowIndexMapper.getVisualFromRenderableIndex(bottomRow)) !== null && _rowIndexMapper$getVi !== void 0 ? _rowIndexMapper$getVi : bottomRow, (_columnIndexMapper$ge = columnIndexMapper.getVisualFromRenderableIndex(endColumn)) !== null && _columnIndexMapper$ge !== void 0 ? _columnIndexMapper$ge : endColumn);
173
+ }
174
+
175
+ /**
176
+ * Normalizes the coordinates (clamps to nearest visible cell position within dataset range).
177
+ *
178
+ * @param {Core} hot The Handsontable instance.
179
+ * @returns {function(Coords | undefined): Coords | null}
180
+ */
181
+ function normalizeCoordsIfNeeded(hot) {
182
+ return coords => {
183
+ if (!coords) {
184
+ return null;
185
+ }
186
+ const mostTopStartCoords = getMostTopStartPosition(hot);
187
+ const mostBottomEndCoords = getMostBottomEndPosition(hot);
188
+ if (coords.col < mostTopStartCoords.col) {
189
+ coords.col = mostTopStartCoords.col;
190
+ }
191
+ if (coords.col > mostBottomEndCoords.col) {
192
+ coords.col = mostBottomEndCoords.col;
193
+ }
194
+ if (coords.row < mostTopStartCoords.row) {
195
+ coords.row = mostTopStartCoords.row;
196
+ }
197
+ if (coords.row > mostBottomEndCoords.row) {
198
+ coords.row = mostBottomEndCoords.row;
199
+ }
200
+ return coords;
201
+ };
164
202
  }
package/core.js CHANGED
@@ -254,7 +254,6 @@ function Core(rootElement, userSettings) {
254
254
  if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
255
255
  this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
256
256
  }
257
-
258
257
  const visualToRenderableCoords = coords => {
259
258
  const {
260
259
  row: visualRow,
@@ -274,7 +273,6 @@ function Core(rootElement, userSettings) {
274
273
  renderableRow >= 0 ? instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow, renderableColumn >= 0 ? instance.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn // eslint-disable-line max-len
275
274
  );
276
275
  };
277
-
278
276
  let selection = new _selection.Selection(tableMeta, {
279
277
  rowIndexMapper: instance.rowIndexMapper,
280
278
  columnIndexMapper: instance.columnIndexMapper,
@@ -577,7 +575,6 @@ function Core(rootElement, userSettings) {
577
575
  instance._refreshBorders(); // it will call render and prepare methods
578
576
  }
579
577
  }
580
-
581
578
  break;
582
579
  case 'insert_col_start':
583
580
  case 'insert_col_end':
@@ -600,7 +597,6 @@ function Core(rootElement, userSettings) {
600
597
  spliceArray.length += colDelta; // inserts empty (undefined) elements at the end of an array
601
598
  Array.prototype.splice.apply(tableMeta.colHeaders, spliceArray); // inserts empty (undefined) elements into the colHeader array
602
599
  }
603
-
604
600
  const currentSelectedRange = selection.selectedRange.current();
605
601
  const currentFromRange = currentSelectedRange === null || currentSelectedRange === void 0 ? void 0 : currentSelectedRange.from;
606
602
  const currentFromColumn = currentFromRange === null || currentFromRange === void 0 ? void 0 : currentFromRange.col;
@@ -634,7 +630,6 @@ function Core(rootElement, userSettings) {
634
630
  instance._refreshBorders(); // it will call render and prepare methods
635
631
  }
636
632
  }
637
-
638
633
  break;
639
634
  case 'remove_row':
640
635
  const removeRow = indexes => {
@@ -730,7 +725,6 @@ function Core(rootElement, userSettings) {
730
725
  grid.adjustRowsAndCols(); // makes sure that we did not add rows that will be removed in next refresh
731
726
  }
732
727
  },
733
-
734
728
  /**
735
729
  * Makes sure there are empty rows at the bottom of the table.
736
730
  *
@@ -1186,7 +1180,6 @@ function Core(rootElement, userSettings) {
1186
1180
  }
1187
1181
  callback(isValid); // called when async validators are resolved and beforeChange was not async
1188
1182
  };
1189
-
1190
1183
  for (let i = changes.length - 1; i >= 0; i--) {
1191
1184
  const [row, prop,, newValue] = changes[i];
1192
1185
  const col = datamap.propToCol(prop);
@@ -1456,7 +1449,6 @@ function Core(rootElement, userSettings) {
1456
1449
  if (typeof input[i][1] !== 'number') {
1457
1450
  throw new Error('Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`'); // eslint-disable-line max-len
1458
1451
  }
1459
-
1460
1452
  if (input[i][1] >= this.countCols()) {
1461
1453
  prop = input[i][1];
1462
1454
  } else {
@@ -1587,7 +1579,6 @@ function Core(rootElement, userSettings) {
1587
1579
  if (!(typeof input === 'object' && typeof input[0] === 'object')) {
1588
1580
  throw new Error('populateFromArray parameter `input` must be an array of arrays'); // API changed in 0.9-beta2, let's check if you use it correctly
1589
1581
  }
1590
-
1591
1582
  const c = typeof endRow === 'number' ? instance._createCellCoords(endRow, endCol) : null;
1592
1583
  return grid.populateFromArray(instance._createCellCoords(row, column), input, c, source, method);
1593
1584
  };
@@ -3488,7 +3479,6 @@ function Core(rootElement, userSettings) {
3488
3479
  } else if (tableMeta.colHeaders && typeof tableMeta.colHeaders !== 'string' && typeof tableMeta.colHeaders !== 'number') {
3489
3480
  result = (0, _data.spreadsheetColumnLabel)(columnIndex); // see #1458
3490
3481
  }
3491
-
3492
3482
  result = instance.runHooks('modifyColumnHeaderValue', result, column, headerLevel);
3493
3483
  return result;
3494
3484
  };
@@ -4119,7 +4109,6 @@ function Core(rootElement, userSettings) {
4119
4109
  };
4120
4110
  /* eslint-enable prefer-rest-params */
4121
4111
  }
4122
-
4123
4112
  const {
4124
4113
  row,
4125
4114
  col,
package/core.mjs CHANGED
@@ -249,7 +249,6 @@ export default function Core(rootElement, userSettings) {
249
249
  if (!this.rootElement.id || this.rootElement.id.substring(0, 3) === 'ht_') {
250
250
  this.rootElement.id = this.guid; // if root element does not have an id, assign a random id
251
251
  }
252
-
253
252
  const visualToRenderableCoords = coords => {
254
253
  const {
255
254
  row: visualRow,
@@ -269,7 +268,6 @@ export default function Core(rootElement, userSettings) {
269
268
  renderableRow >= 0 ? instance.rowIndexMapper.getVisualFromRenderableIndex(renderableRow) : renderableRow, renderableColumn >= 0 ? instance.columnIndexMapper.getVisualFromRenderableIndex(renderableColumn) : renderableColumn // eslint-disable-line max-len
270
269
  );
271
270
  };
272
-
273
271
  let selection = new Selection(tableMeta, {
274
272
  rowIndexMapper: instance.rowIndexMapper,
275
273
  columnIndexMapper: instance.columnIndexMapper,
@@ -572,7 +570,6 @@ export default function Core(rootElement, userSettings) {
572
570
  instance._refreshBorders(); // it will call render and prepare methods
573
571
  }
574
572
  }
575
-
576
573
  break;
577
574
  case 'insert_col_start':
578
575
  case 'insert_col_end':
@@ -595,7 +592,6 @@ export default function Core(rootElement, userSettings) {
595
592
  spliceArray.length += colDelta; // inserts empty (undefined) elements at the end of an array
596
593
  Array.prototype.splice.apply(tableMeta.colHeaders, spliceArray); // inserts empty (undefined) elements into the colHeader array
597
594
  }
598
-
599
595
  const currentSelectedRange = selection.selectedRange.current();
600
596
  const currentFromRange = currentSelectedRange === null || currentSelectedRange === void 0 ? void 0 : currentSelectedRange.from;
601
597
  const currentFromColumn = currentFromRange === null || currentFromRange === void 0 ? void 0 : currentFromRange.col;
@@ -629,7 +625,6 @@ export default function Core(rootElement, userSettings) {
629
625
  instance._refreshBorders(); // it will call render and prepare methods
630
626
  }
631
627
  }
632
-
633
628
  break;
634
629
  case 'remove_row':
635
630
  const removeRow = indexes => {
@@ -725,7 +720,6 @@ export default function Core(rootElement, userSettings) {
725
720
  grid.adjustRowsAndCols(); // makes sure that we did not add rows that will be removed in next refresh
726
721
  }
727
722
  },
728
-
729
723
  /**
730
724
  * Makes sure there are empty rows at the bottom of the table.
731
725
  *
@@ -1181,7 +1175,6 @@ export default function Core(rootElement, userSettings) {
1181
1175
  }
1182
1176
  callback(isValid); // called when async validators are resolved and beforeChange was not async
1183
1177
  };
1184
-
1185
1178
  for (let i = changes.length - 1; i >= 0; i--) {
1186
1179
  const [row, prop,, newValue] = changes[i];
1187
1180
  const col = datamap.propToCol(prop);
@@ -1451,7 +1444,6 @@ export default function Core(rootElement, userSettings) {
1451
1444
  if (typeof input[i][1] !== 'number') {
1452
1445
  throw new Error('Method `setDataAtCell` accepts row and column number as its parameters. If you want to use object property name, use method `setDataAtRowProp`'); // eslint-disable-line max-len
1453
1446
  }
1454
-
1455
1447
  if (input[i][1] >= this.countCols()) {
1456
1448
  prop = input[i][1];
1457
1449
  } else {
@@ -1582,7 +1574,6 @@ export default function Core(rootElement, userSettings) {
1582
1574
  if (!(typeof input === 'object' && typeof input[0] === 'object')) {
1583
1575
  throw new Error('populateFromArray parameter `input` must be an array of arrays'); // API changed in 0.9-beta2, let's check if you use it correctly
1584
1576
  }
1585
-
1586
1577
  const c = typeof endRow === 'number' ? instance._createCellCoords(endRow, endCol) : null;
1587
1578
  return grid.populateFromArray(instance._createCellCoords(row, column), input, c, source, method);
1588
1579
  };
@@ -3483,7 +3474,6 @@ export default function Core(rootElement, userSettings) {
3483
3474
  } else if (tableMeta.colHeaders && typeof tableMeta.colHeaders !== 'string' && typeof tableMeta.colHeaders !== 'number') {
3484
3475
  result = spreadsheetColumnLabel(columnIndex); // see #1458
3485
3476
  }
3486
-
3487
3477
  result = instance.runHooks('modifyColumnHeaderValue', result, column, headerLevel);
3488
3478
  return result;
3489
3479
  };
@@ -4114,7 +4104,6 @@ export default function Core(rootElement, userSettings) {
4114
4104
  };
4115
4105
  /* eslint-enable prefer-rest-params */
4116
4106
  }
4117
-
4118
4107
  const {
4119
4108
  row,
4120
4109
  col,
@@ -10,8 +10,8 @@ var _array = require("../helpers/array");
10
10
  var _number = require("../helpers/number");
11
11
  var _mixed = require("../helpers/mixed");
12
12
  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; }
13
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
14
- 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 _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
14
+ 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); }
15
15
  /*
16
16
  This class contains open-source contributions covered by the MIT license.
17
17
 
@@ -33,6 +33,7 @@ The above copyright notice and this permission notice shall be included in all c
33
33
 
34
34
  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
35
35
  */
36
+
36
37
  /**
37
38
  * Utility class that gets and saves data from/to the data source using mapping of columns numbers to object property names.
38
39
  *
@@ -1,8 +1,8 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  import "core-js/modules/es.array.push.js";
3
3
  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; }
4
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
- 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); }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
+ 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); }
6
6
  import { stringify } from "../3rdparty/SheetClip/index.mjs";
7
7
  import { countFirstRowKeys } from "../helpers/data.mjs";
8
8
  import { createObjectPropListener, deepClone, deepExtend, deepObjectSize, duckSchema, hasOwnProperty, isObject, objectEach } from "../helpers/object.mjs";
@@ -9,8 +9,8 @@ var _array = require("../helpers/array");
9
9
  var _number = require("../helpers/number");
10
10
  var _function = require("../helpers/function");
11
11
  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; }
12
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
13
- 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); }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
13
+ 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); }
14
14
  /**
15
15
  * @class DataSource
16
16
  * @private
@@ -1,8 +1,8 @@
1
1
  import "core-js/modules/es.array.push.js";
2
2
  import "core-js/modules/es.error.cause.js";
3
3
  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; }
4
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
- 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); }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
+ 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); }
6
6
  import { createObjectPropListener, getProperty, isObject, objectEach, setProperty } from "../helpers/object.mjs";
7
7
  import { countFirstRowKeys } from "../helpers/data.mjs";
8
8
  import { arrayEach } from "../helpers/array.mjs";
@@ -7,8 +7,8 @@ var _array = require("../../helpers/array");
7
7
  var _utils = require("./utils");
8
8
  let _Symbol$iterator;
9
9
  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; }
10
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
11
- 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); }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
11
+ 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); }
12
12
  /* eslint-disable jsdoc/require-description-complete-sentence */
13
13
  /**
14
14
  * @class LazyFactoryMap
@@ -2,8 +2,8 @@ import "core-js/modules/es.error.cause.js";
2
2
  let _Symbol$iterator;
3
3
  import "core-js/modules/es.array.push.js";
4
4
  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; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
6
- 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); }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
6
+ 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); }
7
7
  import { arrayFilter } from "../../helpers/array.mjs";
8
8
  import { assert, isUnsignedNumber, isNullish } from "./utils.mjs";
9
9
  /* eslint-disable jsdoc/require-description-complete-sentence */
@@ -8,8 +8,8 @@ var _utils = require("../utils");
8
8
  var _lazyFactoryMap = _interopRequireDefault(require("../lazyFactoryMap"));
9
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
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); }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
12
+ 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
13
  /* eslint-disable jsdoc/require-description-complete-sentence */
14
14
  /**
15
15
  * @class CellMeta
@@ -1,8 +1,8 @@
1
1
  import "core-js/modules/es.array.push.js";
2
2
  import "core-js/modules/es.error.cause.js";
3
3
  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; }
4
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
- 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); }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
5
+ 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); }
6
6
  import { extend } from "../../../helpers/object.mjs";
7
7
  import { extendByMetaType, assert, isUnsignedNumber } from "../utils.mjs";
8
8
  import LazyFactoryMap from "../lazyFactoryMap.mjs";
@@ -7,8 +7,8 @@ var _utils = require("../utils");
7
7
  var _lazyFactoryMap = _interopRequireDefault(require("../lazyFactoryMap"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
9
  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; }
10
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
11
- 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); }
10
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
11
+ 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); }
12
12
  /**
13
13
  * List of props which have to be cleared in the column meta-layer. That props have a
14
14
  * different meaning when using in column meta.
@@ -1,7 +1,7 @@
1
1
  import "core-js/modules/es.error.cause.js";
2
2
  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; }
3
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
4
- 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); }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(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
5
  import { extend } from "../../../helpers/object.mjs";
6
6
  import { columnFactory, extendByMetaType } from "../utils.mjs";
7
7
  import LazyFactoryMap from "../lazyFactoryMap.mjs";