handsontable 0.0.0-next-30767dd-20250207 → 0.0.0-next-8951d31-20250210

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (47) hide show
  1. package/3rdparty/walkontable/src/calculator/viewportColumns.js +1 -5
  2. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +1 -5
  3. package/3rdparty/walkontable/src/calculator/viewportRows.js +1 -5
  4. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +1 -5
  5. package/3rdparty/walkontable/src/overlay/inlineStart.js +1 -8
  6. package/3rdparty/walkontable/src/overlay/inlineStart.mjs +1 -8
  7. package/3rdparty/walkontable/src/overlay/top.js +1 -9
  8. package/3rdparty/walkontable/src/overlay/top.mjs +1 -9
  9. package/3rdparty/walkontable/src/renderer/cells.js +4 -1
  10. package/3rdparty/walkontable/src/renderer/cells.mjs +4 -1
  11. package/3rdparty/walkontable/src/renderer/columnHeaders.js +4 -1
  12. package/3rdparty/walkontable/src/renderer/columnHeaders.mjs +4 -1
  13. package/3rdparty/walkontable/src/renderer/rowHeaders.js +3 -0
  14. package/3rdparty/walkontable/src/renderer/rowHeaders.mjs +3 -0
  15. package/3rdparty/walkontable/src/table.js +5 -146
  16. package/3rdparty/walkontable/src/table.mjs +5 -146
  17. package/3rdparty/walkontable/src/utils/column.js +4 -25
  18. package/3rdparty/walkontable/src/utils/column.mjs +4 -25
  19. package/3rdparty/walkontable/src/utils/row.js +2 -12
  20. package/3rdparty/walkontable/src/utils/row.mjs +2 -12
  21. package/3rdparty/walkontable/src/viewport.js +2 -36
  22. package/3rdparty/walkontable/src/viewport.mjs +2 -36
  23. package/base.js +2 -2
  24. package/base.mjs +2 -2
  25. package/core.js +4 -54
  26. package/core.mjs +4 -54
  27. package/dist/handsontable.css +2 -2
  28. package/dist/handsontable.full.css +2 -2
  29. package/dist/handsontable.full.js +56 -333
  30. package/dist/handsontable.full.min.css +2 -2
  31. package/dist/handsontable.full.min.js +9 -9
  32. package/dist/handsontable.js +51 -322
  33. package/dist/handsontable.min.css +2 -2
  34. package/dist/handsontable.min.js +15 -15
  35. package/helpers/mixed.js +1 -1
  36. package/helpers/mixed.mjs +1 -1
  37. package/package.json +1 -1
  38. package/plugins/copyPaste/copyPaste.js +6 -12
  39. package/plugins/copyPaste/copyPaste.mjs +6 -12
  40. package/renderers/textRenderer/textRenderer.js +8 -3
  41. package/renderers/textRenderer/textRenderer.mjs +8 -3
  42. package/styles/handsontable.css +2 -2
  43. package/styles/handsontable.min.css +2 -2
  44. package/styles/ht-theme-horizon.css +2 -2
  45. package/styles/ht-theme-horizon.min.css +2 -2
  46. package/styles/ht-theme-main.css +2 -2
  47. package/styles/ht-theme-main.min.css +2 -2
@@ -25,8 +25,8 @@
25
25
  * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER ARISING FROM
26
26
  * USE OR INABILITY TO USE THIS SOFTWARE.
27
27
  *
28
- * Version: 0.0.0-next-30767dd-20250207
29
- * Release date: 16/12/2024 (built at 07/02/2025 16:03:46)
28
+ * Version: 0.0.0-next-8951d31-20250210
29
+ * Release date: 16/12/2024 (built at 10/02/2025 11:00:22)
30
30
  */
31
31
  (function webpackUniversalModuleDefinition(root, factory) {
32
32
  if(typeof exports === 'object' && typeof module === 'object')
@@ -42855,8 +42855,8 @@ Handsontable.hooks = _hooks.Hooks.getSingleton();
42855
42855
  Handsontable.CellCoords = _src.CellCoords;
42856
42856
  Handsontable.CellRange = _src.CellRange;
42857
42857
  Handsontable.packageName = 'handsontable';
42858
- Handsontable.buildDate = "07/02/2025 16:03:46";
42859
- Handsontable.version = "0.0.0-next-30767dd-20250207";
42858
+ Handsontable.buildDate = "10/02/2025 11:00:22";
42859
+ Handsontable.version = "0.0.0-next-8951d31-20250210";
42860
42860
  Handsontable.languages = {
42861
42861
  dictionaryKeys: _registry.dictionaryKeys,
42862
42862
  getLanguageDictionary: _registry.getLanguageDictionary,
@@ -46374,33 +46374,7 @@ function Core(rootElement, userSettings) {
46374
46374
  * @returns {number}
46375
46375
  */
46376
46376
  this._getColWidthFromSettings = function (col) {
46377
- let width;
46378
-
46379
- // We currently don't support cell meta objects for headers (negative values)
46380
- if (col >= 0) {
46381
- const cellProperties = instance.getCellMeta(0, col);
46382
- width = cellProperties.width;
46383
- }
46384
- if (width === undefined || width === tableMeta.width) {
46385
- width = tableMeta.colWidths;
46386
- }
46387
- if (width !== undefined && width !== null) {
46388
- switch (typeof width) {
46389
- case 'object':
46390
- // array
46391
- width = width[col];
46392
- break;
46393
- case 'function':
46394
- width = width(col);
46395
- break;
46396
- default:
46397
- break;
46398
- }
46399
- if (typeof width === 'string') {
46400
- width = parseInt(width, 10);
46401
- }
46402
- }
46403
- return width;
46377
+ return tableMeta.colWidths[col];
46404
46378
  };
46405
46379
 
46406
46380
  /**
@@ -46414,12 +46388,7 @@ function Core(rootElement, userSettings) {
46414
46388
  * @fires Hooks#modifyColWidth
46415
46389
  */
46416
46390
  this.getColWidth = function (column, source) {
46417
- let width = instance._getColWidthFromSettings(column);
46418
- width = instance.runHooks('modifyColWidth', width, column, source);
46419
- if (width === undefined) {
46420
- width = _src.DEFAULT_COLUMN_WIDTH;
46421
- }
46422
- return width;
46391
+ return instance._getColWidthFromSettings(column);
46423
46392
  };
46424
46393
 
46425
46394
  /**
@@ -46432,24 +46401,7 @@ function Core(rootElement, userSettings) {
46432
46401
  * @returns {number}
46433
46402
  */
46434
46403
  this._getRowHeightFromSettings = function (row) {
46435
- let height = tableMeta.rowHeights;
46436
- if (height !== undefined && height !== null) {
46437
- switch (typeof height) {
46438
- case 'object':
46439
- // array
46440
- height = height[row];
46441
- break;
46442
- case 'function':
46443
- height = height(row);
46444
- break;
46445
- default:
46446
- break;
46447
- }
46448
- if (typeof height === 'string') {
46449
- height = parseInt(height, 10);
46450
- }
46451
- }
46452
- return height;
46404
+ return tableMeta.rowHeights;
46453
46405
  };
46454
46406
 
46455
46407
  /**
@@ -46480,9 +46432,7 @@ function Core(rootElement, userSettings) {
46480
46432
  * @fires Hooks#modifyRowHeight
46481
46433
  */
46482
46434
  this.getRowHeight = function (row, source) {
46483
- let height = instance._getRowHeightFromSettings(row);
46484
- height = instance.runHooks('modifyRowHeight', height, row, source);
46485
- return height;
46435
+ return instance._getRowHeightFromSettings(row);
46486
46436
  };
46487
46437
 
46488
46438
  /**
@@ -52709,7 +52659,7 @@ function sanitize(string, options) {
52709
52659
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
52710
52660
 
52711
52661
  "use strict";
52712
- /*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */
52662
+ /*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */
52713
52663
 
52714
52664
 
52715
52665
 
@@ -52750,10 +52700,8 @@ if (!construct) {
52750
52700
  };
52751
52701
  }
52752
52702
  const arrayForEach = unapply(Array.prototype.forEach);
52753
- const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);
52754
52703
  const arrayPop = unapply(Array.prototype.pop);
52755
52704
  const arrayPush = unapply(Array.prototype.push);
52756
- const arraySplice = unapply(Array.prototype.splice);
52757
52705
  const stringToLowerCase = unapply(String.prototype.toLowerCase);
52758
52706
  const stringToString = unapply(String.prototype.toString);
52759
52707
  const stringMatch = unapply(String.prototype.match);
@@ -52909,7 +52857,7 @@ const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:x
52909
52857
  // eslint-disable-next-line unicorn/better-regex
52910
52858
  const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode
52911
52859
  const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
52912
- const TMPLIT_EXPR = seal(/\$\{[\w\W]*/gm); // eslint-disable-line unicorn/better-regex
52860
+ const TMPLIT_EXPR = seal(/\$\{[\w\W]*}/gm); // eslint-disable-line unicorn/better-regex
52913
52861
  const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]+$/); // eslint-disable-line no-useless-escape
52914
52862
  const ARIA_ATTR = seal(/^aria-[\-\w]+$/); // eslint-disable-line no-useless-escape
52915
52863
  const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i // eslint-disable-line no-useless-escape
@@ -53009,9 +52957,9 @@ const _createHooksMap = function _createHooksMap() {
53009
52957
  function createDOMPurify() {
53010
52958
  let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();
53011
52959
  const DOMPurify = root => createDOMPurify(root);
53012
- DOMPurify.version = '3.2.4';
52960
+ DOMPurify.version = '3.2.3';
53013
52961
  DOMPurify.removed = [];
53014
- if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {
52962
+ if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document) {
53015
52963
  // Not running in a browser, provide a factory function
53016
52964
  // so that you can pass your own Window
53017
52965
  DOMPurify.isSupported = false;
@@ -54030,11 +53978,7 @@ function createDOMPurify() {
54030
53978
  }
54031
53979
  arrayPush(hooks[entryPoint], hookFunction);
54032
53980
  };
54033
- DOMPurify.removeHook = function (entryPoint, hookFunction) {
54034
- if (hookFunction !== undefined) {
54035
- const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);
54036
- return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];
54037
- }
53981
+ DOMPurify.removeHook = function (entryPoint) {
54038
53982
  return arrayPop(hooks[entryPoint]);
54039
53983
  };
54040
53984
  DOMPurify.removeHooks = function (entryPoint) {
@@ -54195,7 +54139,7 @@ const domMessages = {
54195
54139
  function _injectProductInfo(key, element) {
54196
54140
  const hasValidType = !isEmpty(key);
54197
54141
  const isNonCommercial = typeof key === 'string' && key.toLowerCase() === 'non-commercial-and-evaluation';
54198
- const hotVersion = "0.0.0-next-30767dd-20250207";
54142
+ const hotVersion = "0.0.0-next-8951d31-20250210";
54199
54143
  let keyValidityDate;
54200
54144
  let consoleMessageState = 'invalid';
54201
54145
  let domMessageState = 'invalid';
@@ -71327,11 +71271,7 @@ class ViewportColumnsCalculator extends _viewportBase.ViewportBaseCalculator {
71327
71271
  * @returns {number}
71328
71272
  */
71329
71273
  getColumnWidth(column) {
71330
- const width = this.columnWidthFn(column);
71331
- if (isNaN(width)) {
71332
- return DEFAULT_WIDTH;
71333
- }
71334
- return width;
71274
+ return this.columnWidthFn(column);
71335
71275
  }
71336
71276
  }
71337
71277
  exports.ViewportColumnsCalculator = ViewportColumnsCalculator;
@@ -71526,11 +71466,7 @@ class ViewportRowsCalculator extends _viewportBase.ViewportBaseCalculator {
71526
71466
  * @returns {number}
71527
71467
  */
71528
71468
  getRowHeight(row) {
71529
- const rowHeight = this.rowHeightFn(row);
71530
- if (isNaN(rowHeight)) {
71531
- return this.defaultHeight;
71532
- }
71533
- return rowHeight;
71469
+ return this.rowHeightFn(row);
71534
71470
  }
71535
71471
  }
71536
71472
  exports.ViewportRowsCalculator = ViewportRowsCalculator;
@@ -74516,16 +74452,6 @@ class Table {
74516
74452
  this.resetOversizedRows();
74517
74453
  this.tableRenderer.setActiveOverlayName(this.name).setViewportSize(this.getRenderedRowsCount(), this.getRenderedColumnsCount()).setFilters(this.rowFilter, this.columnFilter).render();
74518
74454
  if (this.isMaster) {
74519
- this.markOversizedColumnHeaders();
74520
- }
74521
- this.adjustColumnHeaderHeights();
74522
- if (this.isMaster || this.is(_overlay.CLONE_BOTTOM)) {
74523
- this.markOversizedRows();
74524
- }
74525
- if (this.isMaster) {
74526
- if (!this.wtSettings.getSetting('externalRowCalculator')) {
74527
- wtViewport.createVisibleCalculators();
74528
- }
74529
74455
  wtOverlays.refresh(false);
74530
74456
  wtOverlays.applyToDOM();
74531
74457
  this.wtSettings.getSetting('onDraw', true);
@@ -74567,85 +74493,18 @@ class Table {
74567
74493
  /**
74568
74494
  * @param {number} col The visual column index.
74569
74495
  */
74570
- markIfOversizedColumnHeader(col) {
74571
- const sourceColIndex = this.columnFilter.renderedToSource(col);
74572
- let level = this.wtSettings.getSetting('columnHeaders').length;
74573
- const defaultRowHeight = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
74574
- let previousColHeaderHeight;
74575
- let currentHeader;
74576
- let currentHeaderHeight;
74577
- const columnHeaderHeightSetting = this.wtSettings.getSetting('columnHeaderHeight') || [];
74578
- while (level) {
74579
- level -= 1;
74580
- previousColHeaderHeight = this.getColumnHeaderHeight(level);
74581
- currentHeader = this.getColumnHeader(sourceColIndex, level);
74582
- if (!currentHeader) {
74583
- /* eslint-disable no-continue */
74584
- continue;
74585
- }
74586
- currentHeaderHeight = (0, _element.innerHeight)(currentHeader);
74587
- if (!previousColHeaderHeight && defaultRowHeight < currentHeaderHeight || previousColHeaderHeight < currentHeaderHeight) {
74588
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = currentHeaderHeight;
74589
- }
74590
- if (Array.isArray(columnHeaderHeightSetting)) {
74591
- if (columnHeaderHeightSetting[level] !== null && columnHeaderHeightSetting[level] !== undefined) {
74592
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level];
74593
- }
74594
- } else if (!isNaN(columnHeaderHeightSetting)) {
74595
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting;
74596
- }
74597
- if (this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] < (columnHeaderHeightSetting[level] || columnHeaderHeightSetting)) {
74598
- this.dataAccessObject.wtViewport.oversizedColumnHeaders[level] = columnHeaderHeightSetting[level] || columnHeaderHeightSetting; // eslint-disable-line max-len
74599
- }
74600
- }
74601
- }
74496
+ markIfOversizedColumnHeader(col) {}
74602
74497
 
74603
74498
  /**
74604
74499
  *
74605
74500
  */
74606
- adjustColumnHeaderHeights() {
74607
- const {
74608
- wtSettings
74609
- } = this;
74610
- const children = this.THEAD.childNodes;
74611
- const oversizedColumnHeaders = this.dataAccessObject.wtViewport.oversizedColumnHeaders;
74612
- const columnHeaders = wtSettings.getSetting('columnHeaders');
74613
- for (let i = 0, len = columnHeaders.length; i < len; i++) {
74614
- if (oversizedColumnHeaders[i]) {
74615
- if (!children[i] || children[i].childNodes.length === 0) {
74616
- return;
74617
- }
74618
- children[i].childNodes[0].style.height = `${oversizedColumnHeaders[i]}px`;
74619
- }
74620
- }
74621
- }
74501
+ adjustColumnHeaderHeights() {}
74622
74502
 
74623
74503
  /**
74624
74504
  * Resets cache of row heights. The cache should be cached for each render cycle in a case
74625
74505
  * when new cell values have content which increases/decreases cell height.
74626
74506
  */
74627
- resetOversizedRows() {
74628
- const {
74629
- wtSettings
74630
- } = this;
74631
- const {
74632
- wtViewport
74633
- } = this.dataAccessObject;
74634
- if (!this.isMaster && !this.is(_overlay.CLONE_BOTTOM)) {
74635
- return;
74636
- }
74637
- if (!wtSettings.getSetting('externalRowCalculator')) {
74638
- const rowsToRender = this.getRenderedRowsCount();
74639
-
74640
- // Reset the oversized row cache for rendered rows
74641
- for (let visibleRowIndex = 0; visibleRowIndex < rowsToRender; visibleRowIndex++) {
74642
- const sourceRow = this.rowFilter.renderedToSource(visibleRowIndex);
74643
- if (wtViewport.oversizedRows && wtViewport.oversizedRows[sourceRow]) {
74644
- wtViewport.oversizedRows[sourceRow] = undefined;
74645
- }
74646
- }
74647
- }
74648
- }
74507
+ resetOversizedRows() {}
74649
74508
 
74650
74509
  /**
74651
74510
  * Get cell element at coords.
@@ -74843,46 +74702,7 @@ class Table {
74843
74702
  /**
74844
74703
  * Check if any of the rendered rows is higher than expected, and if so, cache them.
74845
74704
  */
74846
- markOversizedRows() {
74847
- if (this.wtSettings.getSetting('externalRowCalculator')) {
74848
- return;
74849
- }
74850
- let rowCount = this.TBODY.childNodes.length;
74851
- const expectedTableHeight = rowCount * this.dataAccessObject.stylesHandler.getDefaultRowHeight();
74852
- const actualTableHeight = (0, _element.innerHeight)(this.TBODY) - 1;
74853
- const borderBoxSizing = this.wot.stylesHandler.areCellsBorderBox();
74854
- const rowHeightFn = borderBoxSizing ? _element.outerHeight : _element.innerHeight;
74855
- const borderCompensation = borderBoxSizing ? 0 : 1;
74856
- const firstRowBorderCompensation = borderBoxSizing ? 1 : 0;
74857
- let previousRowHeight;
74858
- let rowCurrentHeight;
74859
- let sourceRowIndex;
74860
- let currentTr;
74861
- let rowHeader;
74862
- if (expectedTableHeight === actualTableHeight && !this.wtSettings.getSetting('fixedRowsBottom')) {
74863
- // If the actual table height equals rowCount * default single row height, no row is oversized -> no need to iterate over them
74864
- return;
74865
- }
74866
- while (rowCount) {
74867
- rowCount -= 1;
74868
- sourceRowIndex = this.rowFilter.renderedToSource(rowCount);
74869
- previousRowHeight = this.getRowHeight(sourceRowIndex);
74870
- currentTr = this.getTrForRow(sourceRowIndex);
74871
- rowHeader = currentTr.querySelector('th');
74872
- const topBorderCompensation = sourceRowIndex === 0 ? firstRowBorderCompensation : 0;
74873
- if (rowHeader) {
74874
- rowCurrentHeight = rowHeightFn(rowHeader);
74875
- } else {
74876
- rowCurrentHeight = rowHeightFn(currentTr) - borderCompensation;
74877
- }
74878
- if (!previousRowHeight && this.dataAccessObject.stylesHandler.getDefaultRowHeight() < rowCurrentHeight - topBorderCompensation || previousRowHeight < rowCurrentHeight) {
74879
- if (!borderBoxSizing) {
74880
- rowCurrentHeight += 1;
74881
- }
74882
- this.dataAccessObject.wtViewport.oversizedRows[sourceRowIndex] = rowCurrentHeight;
74883
- }
74884
- }
74885
- }
74705
+ markOversizedRows() {}
74886
74706
 
74887
74707
  /**
74888
74708
  * @param {number} row The visual row index.
@@ -75197,32 +75017,7 @@ class Table {
75197
75017
  * @returns {number}
75198
75018
  */
75199
75019
  _modifyRowHeaderWidth(rowHeaderWidthFactory) {
75200
- let widths = (0, _function.isFunction)(rowHeaderWidthFactory) ? rowHeaderWidthFactory() : null;
75201
- if (Array.isArray(widths)) {
75202
- widths = [...widths];
75203
- widths[widths.length - 1] = this._correctRowHeaderWidth(widths[widths.length - 1]);
75204
- } else {
75205
- widths = this._correctRowHeaderWidth(widths);
75206
- }
75207
- return widths;
75208
- }
75209
-
75210
- /**
75211
- * Correct row header width if necessary.
75212
- *
75213
- * @private
75214
- * @param {number} width The width to process.
75215
- * @returns {number}
75216
- */
75217
- _correctRowHeaderWidth(width) {
75218
- let rowHeaderWidth = width;
75219
- if (typeof width !== 'number') {
75220
- rowHeaderWidth = this.wtSettings.getSetting('defaultColumnWidth');
75221
- }
75222
- if (this.correctHeaderWidth) {
75223
- rowHeaderWidth += 1;
75224
- }
75225
- return rowHeaderWidth;
75020
+ return 50;
75226
75021
  }
75227
75022
  }
75228
75023
  var _default = exports["default"] = Table;
@@ -75635,6 +75430,9 @@ class RowHeadersRenderer extends _base.BaseRenderer {
75635
75430
  for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
75636
75431
  orderView.render();
75637
75432
  const TH = orderView.getCurrentNode();
75433
+ if (TH.innerHTML !== '') {
75434
+ continue;
75435
+ }
75638
75436
  TH.className = '';
75639
75437
  TH.removeAttribute('style');
75640
75438
 
@@ -76580,7 +76378,7 @@ var _a11y = __webpack_require__(496);
76580
76378
  */
76581
76379
  class ColumnHeadersRenderer extends _base.BaseRenderer {
76582
76380
  constructor(rootNode) {
76583
- super(null, rootNode); // NodePool is not implemented for this renderer yet
76381
+ super('TR', rootNode); // NodePool is not implemented for this renderer yet
76584
76382
  }
76585
76383
 
76586
76384
  /**
@@ -76648,6 +76446,9 @@ class ColumnHeadersRenderer extends _base.BaseRenderer {
76648
76446
  // eslint-disable-line max-len
76649
76447
  const sourceColumnIndex = this.table.renderedColumnToSource(renderedColumnIndex);
76650
76448
  const TH = TR.childNodes[renderedColumnIndex + rowHeadersCount];
76449
+ if (TH.innerHTML !== '') {
76450
+ continue;
76451
+ }
76651
76452
  TH.className = '';
76652
76453
  TH.removeAttribute('style');
76653
76454
 
@@ -76938,11 +76739,14 @@ class CellsRenderer extends _base.BaseRenderer {
76938
76739
  this.sourceRowIndex = sourceRowIndex;
76939
76740
  const orderView = this.obtainOrderView(TR);
76940
76741
  const rowHeadersView = rowHeaders.obtainOrderView(TR);
76941
- orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(0).start();
76742
+ orderView.prependView(rowHeadersView).setSize(columnsToRender).setOffset(this.table.renderedColumnToSource(0)).start();
76942
76743
  for (let visibleColumnIndex = 0; visibleColumnIndex < columnsToRender; visibleColumnIndex++) {
76943
76744
  orderView.render();
76944
76745
  const sourceColumnIndex = this.table.renderedColumnToSource(visibleColumnIndex);
76945
76746
  const TD = orderView.getCurrentNode();
76747
+ if (TD.innerHTML !== '') {
76748
+ continue;
76749
+ }
76946
76750
  if (!(0, _element.hasClass)(TD, 'hide')) {
76947
76751
  // Workaround for hidden columns plugin
76948
76752
  TD.className = '';
@@ -77352,8 +77156,7 @@ class ColumnUtils {
77352
77156
  * @returns {number}
77353
77157
  */
77354
77158
  getWidth(sourceIndex) {
77355
- const width = this.wtSettings.getSetting('columnWidth', sourceIndex) || this.wtSettings.getSetting('defaultColumnWidth');
77356
- return width;
77159
+ return this.wtSettings.getSetting('columnWidth', sourceIndex);
77357
77160
  }
77358
77161
 
77359
77162
  /**
@@ -77363,12 +77166,7 @@ class ColumnUtils {
77363
77166
  * @returns {number}
77364
77167
  */
77365
77168
  getHeaderHeight(level) {
77366
- let height = this.dataAccessObject.stylesHandler.getDefaultRowHeight();
77367
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedColumnHeaders[level];
77368
- if (oversizedHeight !== undefined) {
77369
- height = height ? Math.max(height, oversizedHeight) : oversizedHeight;
77370
- }
77371
- return height;
77169
+ return this.dataAccessObject.stylesHandler.getDefaultRowHeight();
77372
77170
  }
77373
77171
 
77374
77172
  /**
@@ -77378,28 +77176,13 @@ class ColumnUtils {
77378
77176
  * @returns {number}
77379
77177
  */
77380
77178
  getHeaderWidth(sourceIndex) {
77381
- return this.headerWidths.get(this.dataAccessObject.wtTable.columnFilter.sourceToRendered(sourceIndex));
77179
+ return 50;
77382
77180
  }
77383
77181
 
77384
77182
  /**
77385
77183
  * Calculates column header widths that can be retrieved from the cache.
77386
77184
  */
77387
- calculateWidths() {
77388
- const {
77389
- wtSettings
77390
- } = this;
77391
- let rowHeaderWidthSetting = wtSettings.getSetting('rowHeaderWidth');
77392
- rowHeaderWidthSetting = wtSettings.getSetting('onModifyRowHeaderWidth', rowHeaderWidthSetting);
77393
- if (rowHeaderWidthSetting !== null && rowHeaderWidthSetting !== undefined) {
77394
- const rowHeadersCount = wtSettings.getSetting('rowHeaders').length;
77395
- const defaultColumnWidth = wtSettings.getSetting('defaultColumnWidth');
77396
- for (let visibleColumnIndex = 0; visibleColumnIndex < rowHeadersCount; visibleColumnIndex++) {
77397
- let width = Array.isArray(rowHeaderWidthSetting) ? rowHeaderWidthSetting[visibleColumnIndex] : rowHeaderWidthSetting;
77398
- width = width === null || width === undefined ? defaultColumnWidth : width;
77399
- this.headerWidths.set(visibleColumnIndex, width);
77400
- }
77401
- }
77402
- }
77185
+ calculateWidths() {}
77403
77186
  }
77404
77187
  exports["default"] = ColumnUtils;
77405
77188
 
@@ -77443,12 +77226,7 @@ class RowUtils {
77443
77226
  * @returns {number}
77444
77227
  */
77445
77228
  getHeight(sourceIndex) {
77446
- let height = this.wtSettings.getSetting('rowHeight', sourceIndex);
77447
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];
77448
- if (oversizedHeight !== undefined) {
77449
- height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);
77450
- }
77451
- return height;
77229
+ return this.wtSettings.getSetting('rowHeight', sourceIndex);
77452
77230
  }
77453
77231
 
77454
77232
  /**
@@ -77459,12 +77237,7 @@ class RowUtils {
77459
77237
  * @returns {number}
77460
77238
  */
77461
77239
  getHeightByOverlayName(sourceIndex, overlayName) {
77462
- let height = this.wtSettings.getSetting('rowHeightByOverlayName', sourceIndex, overlayName);
77463
- const oversizedHeight = this.dataAccessObject.wtViewport.oversizedRows[sourceIndex];
77464
- if (oversizedHeight !== undefined) {
77465
- height = height === undefined ? oversizedHeight : Math.max(height, oversizedHeight);
77466
- }
77467
- return height;
77240
+ return this.wtSettings.getSetting('rowHeight', sourceIndex);
77468
77241
  }
77469
77242
  }
77470
77243
  exports["default"] = RowUtils;
@@ -79461,14 +79234,7 @@ class InlineStartOverlay extends _base.Overlay {
79461
79234
  * @returns {number} Width sum.
79462
79235
  */
79463
79236
  sumCellSizes(from, to) {
79464
- const defaultColumnWidth = this.wtSettings.getSetting('defaultColumnWidth');
79465
- let column = from;
79466
- let sum = 0;
79467
- while (column < to) {
79468
- sum += this.wot.wtTable.getColumnWidth(column) || defaultColumnWidth;
79469
- column += 1;
79470
- }
79471
- return sum;
79237
+ return (to - from) * 80;
79472
79238
  }
79473
79239
 
79474
79240
  /**
@@ -81851,15 +81617,7 @@ class TopOverlay extends _base.Overlay {
81851
81617
  * @returns {number} Height sum.
81852
81618
  */
81853
81619
  sumCellSizes(from, to) {
81854
- const defaultRowHeight = this.wot.stylesHandler.getDefaultRowHeight();
81855
- let row = from;
81856
- let sum = 0;
81857
- while (row < to) {
81858
- const height = this.wot.wtTable.getRowHeight(row);
81859
- sum += height === undefined ? defaultRowHeight : height;
81860
- row += 1;
81861
- }
81862
- return sum;
81620
+ return (to - from) * 29;
81863
81621
  }
81864
81622
 
81865
81623
  /**
@@ -82572,7 +82330,6 @@ class Viewport {
82572
82330
  this.domBindings = domBindings;
82573
82331
  this.wtSettings = wtSettings;
82574
82332
  this.wtTable = wtTable;
82575
- this.oversizedRows = [];
82576
82333
  this.oversizedColumnHeaders = [];
82577
82334
  this.hasOversizedColumnHeadersMarked = {};
82578
82335
  this.clientHeight = 0;
@@ -82727,47 +82484,14 @@ class Viewport {
82727
82484
  * @returns {number}
82728
82485
  */
82729
82486
  getColumnHeaderHeight() {
82730
- const columnHeaders = this.wtSettings.getSetting('columnHeaders');
82731
- if (!columnHeaders.length) {
82732
- this.columnHeaderHeight = 0;
82733
- } else if (isNaN(this.columnHeaderHeight)) {
82734
- this.columnHeaderHeight = (0, _element.outerHeight)(this.wtTable.THEAD);
82735
- }
82736
- return this.columnHeaderHeight;
82487
+ return 59;
82737
82488
  }
82738
82489
 
82739
82490
  /**
82740
82491
  * @returns {number}
82741
82492
  */
82742
82493
  getRowHeaderWidth() {
82743
- const rowHeadersWidthSetting = this.wtSettings.getSetting('rowHeaderWidth');
82744
- const rowHeaders = this.wtSettings.getSetting('rowHeaders');
82745
- if (rowHeadersWidthSetting) {
82746
- this.rowHeaderWidth = 0;
82747
- for (let i = 0, len = rowHeaders.length; i < len; i++) {
82748
- this.rowHeaderWidth += rowHeadersWidthSetting[i] || rowHeadersWidthSetting;
82749
- }
82750
- }
82751
- if (isNaN(this.rowHeaderWidth)) {
82752
- if (rowHeaders.length) {
82753
- let TH = this.wtTable.TABLE.querySelector('TH');
82754
- this.rowHeaderWidth = 0;
82755
- for (let i = 0, len = rowHeaders.length; i < len; i++) {
82756
- if (TH) {
82757
- this.rowHeaderWidth += (0, _element.outerWidth)(TH);
82758
- TH = TH.nextSibling;
82759
- } else {
82760
- // yes this is a cheat but it worked like that before, just taking assumption from CSS instead of measuring.
82761
- // TODO: proper fix
82762
- this.rowHeaderWidth += 50;
82763
- }
82764
- }
82765
- } else {
82766
- this.rowHeaderWidth = 0;
82767
- }
82768
- }
82769
- this.rowHeaderWidth = this.wtSettings.getSetting('onModifyRowHeaderWidth', this.rowHeaderWidth) || this.rowHeaderWidth;
82770
- return this.rowHeaderWidth;
82494
+ return 50;
82771
82495
  }
82772
82496
 
82773
82497
  /**
@@ -101727,9 +101451,14 @@ function textRenderer(hotInstance, TD, row, col, prop, value, cellProperties) {
101727
101451
  if (cellProperties.trimWhitespace) {
101728
101452
  escaped = escaped.trim();
101729
101453
  }
101730
-
101731
- // this is faster than innerHTML. See: https://github.com/handsontable/handsontable/wiki/JavaScript-&-DOM-performance-tips
101732
- (0, _element.fastInnerText)(TD, escaped);
101454
+ if (TD.firstChild) {
101455
+ (0, _element.fastInnerText)(TD.firstChild, escaped);
101456
+ } else {
101457
+ const div = hotInstance.rootDocument.createElement('div');
101458
+ div.style.height = '20px';
101459
+ TD.appendChild(div);
101460
+ (0, _element.fastInnerText)(div, escaped);
101461
+ }
101733
101462
  }
101734
101463
  textRenderer.RENDERER_TYPE = RENDERER_TYPE;
101735
101464
 
@@ -123993,12 +123722,10 @@ class CopyPaste extends _base.BasePlugin {
123993
123722
  * @private
123994
123723
  */
123995
123724
  onCopy(event) {
123996
- var _event$target, _this$hot$getSelected;
123725
+ var _event$target;
123997
123726
  const focusedElement = this.hot.getFocusManager().getRefocusElement();
123998
123727
  const isHotInput = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.hasAttribute('data-hot-input');
123999
- const selectedCell = (_this$hot$getSelected = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected === void 0 ? void 0 : _this$hot$getSelected.highlight;
124000
- const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124001
- if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
123728
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCopy, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body)) {
124002
123729
  return;
124003
123730
  }
124004
123731
  event.preventDefault();
@@ -124028,12 +123755,10 @@ class CopyPaste extends _base.BasePlugin {
124028
123755
  * @private
124029
123756
  */
124030
123757
  onCut(event) {
124031
- var _event$target2, _this$hot$getSelected2;
123758
+ var _event$target2;
124032
123759
  const focusedElement = this.hot.getFocusManager().getRefocusElement();
124033
123760
  const isHotInput = (_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.hasAttribute('data-hot-input');
124034
- const selectedCell = (_this$hot$getSelected2 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected2 === void 0 ? void 0 : _this$hot$getSelected2.highlight;
124035
- const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124036
- if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
123761
+ if (!this.hot.isListening() && !_classPrivateFieldGet(_isTriggeredByCut, this) || this.isEditorOpened() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body)) {
124037
123762
  return;
124038
123763
  }
124039
123764
  event.preventDefault();
@@ -124062,12 +123787,10 @@ class CopyPaste extends _base.BasePlugin {
124062
123787
  * @private
124063
123788
  */
124064
123789
  onPaste(event) {
124065
- var _event$target3, _this$hot$getSelected3;
123790
+ var _event$target3;
124066
123791
  const focusedElement = this.hot.getFocusManager().getRefocusElement();
124067
123792
  const isHotInput = (_event$target3 = event.target) === null || _event$target3 === void 0 ? void 0 : _event$target3.hasAttribute('data-hot-input');
124068
- const selectedCell = (_this$hot$getSelected3 = this.hot.getSelectedRangeLast()) === null || _this$hot$getSelected3 === void 0 ? void 0 : _this$hot$getSelected3.highlight;
124069
- const TD = selectedCell ? this.hot.getCell(selectedCell.row, selectedCell.col, true) : null;
124070
- if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body && TD !== event.target)) {
123793
+ if (!this.hot.isListening() || this.isEditorOpened() || !this.hot.getSelected() || event.target instanceof HTMLElement && (isHotInput && event.target !== focusedElement || !isHotInput && event.target !== this.hot.rootDocument.body)) {
124071
123794
  return;
124072
123795
  }
124073
123796
  event.preventDefault();