handsontable 0.0.0-next-eaf150e-20240823 → 0.0.0-next-0306a1a-20240826

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 (104) hide show
  1. package/3rdparty/walkontable/src/calculator/constants.js +26 -0
  2. package/3rdparty/walkontable/src/calculator/constants.mjs +23 -0
  3. package/3rdparty/walkontable/src/calculator/index.js +17 -18
  4. package/3rdparty/walkontable/src/calculator/index.mjs +6 -11
  5. package/3rdparty/walkontable/src/calculator/{calculationType/renderedAllColumns.js → renderAllColumns.js} +9 -32
  6. package/3rdparty/walkontable/src/calculator/{calculationType/renderedAllColumns.mjs → renderAllColumns.mjs} +8 -31
  7. package/3rdparty/walkontable/src/calculator/{calculationType/renderedAllRows.js → renderAllRows.js} +9 -32
  8. package/3rdparty/walkontable/src/calculator/{calculationType/renderedAllRows.mjs → renderAllRows.mjs} +8 -31
  9. package/3rdparty/walkontable/src/calculator/viewportColumns.js +145 -51
  10. package/3rdparty/walkontable/src/calculator/viewportColumns.mjs +145 -51
  11. package/3rdparty/walkontable/src/calculator/viewportRows.js +141 -59
  12. package/3rdparty/walkontable/src/calculator/viewportRows.mjs +141 -59
  13. package/3rdparty/walkontable/src/index.js +0 -2
  14. package/3rdparty/walkontable/src/index.mjs +2 -2
  15. package/3rdparty/walkontable/src/table.js +11 -5
  16. package/3rdparty/walkontable/src/table.mjs +11 -5
  17. package/3rdparty/walkontable/src/utils/column.js +1 -2
  18. package/3rdparty/walkontable/src/utils/column.mjs +1 -2
  19. package/3rdparty/walkontable/src/utils/columnStretching.js +19 -10
  20. package/3rdparty/walkontable/src/utils/columnStretching.mjs +19 -10
  21. package/3rdparty/walkontable/src/viewport.js +46 -35
  22. package/3rdparty/walkontable/src/viewport.mjs +47 -36
  23. package/CHANGELOG.md +0 -27
  24. package/base.js +2 -2
  25. package/base.mjs +2 -2
  26. package/core.d.ts +2 -1
  27. package/core.js +1 -1
  28. package/core.mjs +2 -2
  29. package/dataMap/metaManager/metaSchema.js +6 -5
  30. package/dataMap/metaManager/metaSchema.mjs +6 -5
  31. package/dist/handsontable.css +20 -32
  32. package/dist/handsontable.full.css +20 -32
  33. package/dist/handsontable.full.js +2091 -2741
  34. package/dist/handsontable.full.min.css +5 -5
  35. package/dist/handsontable.full.min.js +148 -148
  36. package/dist/handsontable.js +2092 -2742
  37. package/dist/handsontable.min.css +4 -4
  38. package/dist/handsontable.min.js +32 -32
  39. package/editors/autocompleteEditor/autocompleteEditor.d.ts +1 -1
  40. package/helpers/a11y.js +0 -2
  41. package/helpers/a11y.mjs +0 -1
  42. package/helpers/mixed.js +2 -2
  43. package/helpers/mixed.mjs +2 -2
  44. package/package.json +1 -1
  45. package/pluginHooks.d.ts +1 -1
  46. package/pluginHooks.js +1 -1
  47. package/pluginHooks.mjs +1 -1
  48. package/plugins/autoColumnSize/autoColumnSize.js +1 -1
  49. package/plugins/autoColumnSize/autoColumnSize.mjs +2 -2
  50. package/plugins/autoRowSize/autoRowSize.js +2 -1
  51. package/plugins/autoRowSize/autoRowSize.mjs +2 -1
  52. package/plugins/columnSorting/columnSorting.js +1 -10
  53. package/plugins/columnSorting/columnSorting.mjs +1 -10
  54. package/plugins/contextMenu/menu/menuItemRenderer.js +4 -3
  55. package/plugins/contextMenu/menu/menuItemRenderer.mjs +6 -5
  56. package/plugins/contextMenu/menu/positioner.js +12 -4
  57. package/plugins/contextMenu/menu/positioner.mjs +12 -4
  58. package/plugins/contextMenu/menu/utils.js +0 -11
  59. package/plugins/contextMenu/menu/utils.mjs +0 -10
  60. package/plugins/contextMenu/predefinedItems/alignment.js +49 -67
  61. package/plugins/contextMenu/predefinedItems/alignment.mjs +50 -68
  62. package/plugins/contextMenu/predefinedItems/readOnly.js +0 -11
  63. package/plugins/contextMenu/predefinedItems/readOnly.mjs +0 -11
  64. package/plugins/contextMenu/utils.js +0 -26
  65. package/plugins/contextMenu/utils.mjs +0 -24
  66. package/plugins/copyPaste/copyPaste.js +14 -14
  67. package/plugins/copyPaste/copyPaste.mjs +14 -14
  68. package/plugins/dropdownMenu/dropdownMenu.js +4 -10
  69. package/plugins/dropdownMenu/dropdownMenu.mjs +4 -10
  70. package/plugins/filters/component/condition.js +1 -6
  71. package/plugins/filters/component/condition.mjs +1 -6
  72. package/plugins/filters/component/value.js +1 -6
  73. package/plugins/filters/component/value.mjs +1 -6
  74. package/plugins/filters/conditionCollection.d.ts +3 -4
  75. package/plugins/filters/conditionCollection.js +0 -26
  76. package/plugins/filters/conditionCollection.mjs +0 -26
  77. package/plugins/filters/filters.js +1 -2
  78. package/plugins/filters/filters.mjs +1 -2
  79. package/plugins/filters/ui/multipleSelect.js +9 -7
  80. package/plugins/filters/ui/multipleSelect.mjs +9 -7
  81. package/plugins/manualRowResize/manualRowResize.js +1 -1
  82. package/plugins/manualRowResize/manualRowResize.mjs +2 -2
  83. package/plugins/mergeCells/cellsCollection.js +9 -11
  84. package/plugins/mergeCells/cellsCollection.mjs +10 -12
  85. package/plugins/undoRedo/undoRedo.js +5 -9
  86. package/plugins/undoRedo/undoRedo.mjs +5 -9
  87. package/shortcuts/utils.js +1 -3
  88. package/shortcuts/utils.mjs +1 -3
  89. package/utils/ghostTable.js +9 -11
  90. package/utils/ghostTable.mjs +10 -12
  91. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.js +0 -126
  92. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleColumns.mjs +0 -122
  93. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.js +0 -119
  94. package/3rdparty/walkontable/src/calculator/calculationType/fullyVisibleRows.mjs +0 -115
  95. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.js +0 -125
  96. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleColumns.mjs +0 -121
  97. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.js +0 -118
  98. package/3rdparty/walkontable/src/calculator/calculationType/partiallyVisibleRows.mjs +0 -114
  99. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.js +0 -37
  100. package/3rdparty/walkontable/src/calculator/calculationType/renderedColumns.mjs +0 -33
  101. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.js +0 -37
  102. package/3rdparty/walkontable/src/calculator/calculationType/renderedRows.mjs +0 -33
  103. package/3rdparty/walkontable/src/calculator/viewportBase.js +0 -92
  104. package/3rdparty/walkontable/src/calculator/viewportBase.mjs +0 -88
@@ -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 { FullyVisibleColumnsCalculationType, FullyVisibleRowsCalculationType, PartiallyVisibleColumnsCalculationType, PartiallyVisibleRowsCalculationType, RenderedAllColumnsCalculationType, RenderedAllRowsCalculationType, RenderedColumnsCalculationType, RenderedRowsCalculationType, ViewportColumnsCalculator, ViewportRowsCalculator } from "./calculator/index.mjs";
3
+ import { RENDER_TYPE, FULLY_VISIBLE_TYPE, PARTIALLY_VISIBLE_TYPE, RenderAllColumnsCalculator, RenderAllRowsCalculator, ViewportColumnsCalculator, ViewportRowsCalculator } from "./calculator/index.mjs";
4
4
  /**
5
5
  * @class Viewport
6
6
  */
@@ -28,8 +28,6 @@ class Viewport {
28
28
  this.rowHeaderWidth = NaN;
29
29
  this.rowsVisibleCalculator = null;
30
30
  this.columnsVisibleCalculator = null;
31
- this.rowsCalculatorTypes = new Map([['rendered', () => this.wtSettings.getSetting('renderAllRows') ? new RenderedAllRowsCalculationType() : new RenderedRowsCalculationType()], ['fullyVisible', () => new FullyVisibleRowsCalculationType()], ['partiallyVisible', () => new PartiallyVisibleRowsCalculationType()]]);
32
- this.columnsCalculatorTypes = new Map([['rendered', () => this.wtSettings.getSetting('renderAllColumns') ? new RenderedAllColumnsCalculationType() : new RenderedColumnsCalculationType()], ['fullyVisible', () => new FullyVisibleColumnsCalculationType()], ['partiallyVisible', () => new PartiallyVisibleColumnsCalculationType()]]);
33
31
  this.eventManager = eventManager;
34
32
  this.eventManager.addEventListener(this.domBindings.rootWindow, 'resize', () => {
35
33
  this.clientHeight = this.getWorkspaceHeight();
@@ -240,20 +238,25 @@ class Viewport {
240
238
  }
241
239
 
242
240
  /**
243
- * Creates rows calculators. The type of the calculations can be chosen from the list:
244
- * - 'rendered' Calculates rows that should be rendered within the current table's viewport;
245
- * - 'fullyVisible' Calculates rows that are fully visible (used mostly for scrolling purposes);
246
- * - 'partiallyVisible' Calculates rows that are partially visible (used mostly for scrolling purposes).
241
+ * Creates:
242
+ * - rowsRenderCalculator (before draw, to qualify rows for rendering)
243
+ * - rowsVisibleCalculator (after draw, to measure which rows are actually visible).
247
244
  *
248
- * @param {'rendered' | 'fullyVisible' | 'partiallyVisible'} calculatorTypes The list of the calculation types.
245
+ * @param {number} calculationType The render type ID, which determines for what type of
246
+ * calculation calculator is created.
249
247
  * @returns {ViewportRowsCalculator}
250
248
  */
251
249
  createRowsCalculator() {
252
- let calculatorTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['rendered', 'fullyVisible', 'partiallyVisible'];
250
+ let calculationType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : RENDER_TYPE;
253
251
  const {
254
252
  wtSettings,
255
253
  wtTable
256
254
  } = this;
255
+ if (wtSettings.getSetting('renderAllRows') && calculationType === RENDER_TYPE) {
256
+ return new RenderAllRowsCalculator({
257
+ totalRows: wtSettings.getSetting('totalRows')
258
+ });
259
+ }
257
260
  let height = this.getViewportHeight();
258
261
  let scrollbarHeight;
259
262
  let fixedRowsHeight;
@@ -277,31 +280,36 @@ class Viewport {
277
280
  scrollbarHeight = getScrollbarWidth(this.domBindings.rootDocument);
278
281
  }
279
282
  return new ViewportRowsCalculator({
280
- calculationTypes: calculatorTypes.map(type => [type, this.rowsCalculatorTypes.get(type)()]),
281
283
  viewportHeight: height,
282
284
  scrollOffset: pos,
283
285
  totalRows: wtSettings.getSetting('totalRows'),
284
286
  rowHeightFn: sourceRow => wtTable.getRowHeight(sourceRow),
285
287
  overrideFn: wtSettings.getSettingPure('viewportRowCalculatorOverride'),
288
+ calculationType,
286
289
  horizontalScrollbarHeight: scrollbarHeight
287
290
  });
288
291
  }
289
292
 
290
293
  /**
291
- * Creates columns calculators. The type of the calculations can be chosen from the list:
292
- * - 'rendered' Calculates columns that should be rendered within the current table's viewport;
293
- * - 'fullyVisible' Calculates columns that are fully visible (used mostly for scrolling purposes);
294
- * - 'partiallyVisible' Calculates columns that are partially visible (used mostly for scrolling purposes).
294
+ * Creates:
295
+ * - columnsRenderCalculator (before draw, to qualify columns for rendering)
296
+ * - columnsVisibleCalculator (after draw, to measure which columns are actually visible).
295
297
  *
296
- * @param {'rendered' | 'fullyVisible' | 'partiallyVisible'} calculatorTypes The list of the calculation types.
298
+ * @param {number} calculationType The render type ID, which determines for what type of
299
+ * calculation calculator is created.
297
300
  * @returns {ViewportColumnsCalculator}
298
301
  */
299
302
  createColumnsCalculator() {
300
- let calculatorTypes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['rendered', 'fullyVisible', 'partiallyVisible'];
303
+ let calculationType = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : RENDER_TYPE;
301
304
  const {
302
305
  wtSettings,
303
306
  wtTable
304
307
  } = this;
308
+ if (wtSettings.getSetting('renderAllColumns') && calculationType === RENDER_TYPE) {
309
+ return new RenderAllColumnsCalculator({
310
+ totalColumns: wtSettings.getSetting('totalColumns')
311
+ });
312
+ }
305
313
  let width = this.getViewportWidth();
306
314
  let pos = Math.abs(this.dataAccessObject.inlineStartScrollPosition) - this.dataAccessObject.inlineStartParentOffset;
307
315
  this.columnHeaderHeight = NaN;
@@ -315,12 +323,12 @@ class Viewport {
315
323
  width -= getScrollbarWidth(this.domBindings.rootDocument);
316
324
  }
317
325
  return new ViewportColumnsCalculator({
318
- calculationTypes: calculatorTypes.map(type => [type, this.columnsCalculatorTypes.get(type)()]),
319
326
  viewportWidth: width,
320
327
  scrollOffset: pos,
321
328
  totalColumns: wtSettings.getSetting('totalColumns'),
322
329
  columnWidthFn: sourceCol => wtTable.getColumnWidth(sourceCol),
323
330
  overrideFn: wtSettings.getSettingPure('viewportColumnCalculatorOverride'),
331
+ calculationType,
324
332
  inlineStartOffset: this.dataAccessObject.inlineStartParentOffset
325
333
  });
326
334
  }
@@ -333,43 +341,46 @@ class Viewport {
333
341
  * If `false` or `undefined`, will perform a full redraw.
334
342
  * @returns {boolean} The fastDraw value, possibly modified.
335
343
  */
336
- createCalculators() {
344
+ createRenderCalculators() {
337
345
  let fastDraw = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
338
346
  const {
339
347
  wtSettings
340
348
  } = this;
341
- const rowsCalculator = this.createRowsCalculator();
342
- const columnsCalculator = this.createColumnsCalculator();
343
349
  if (fastDraw && !wtSettings.getSetting('renderAllRows')) {
344
- const proposedRowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
350
+ const proposedRowsVisibleCalculator = this.createRowsCalculator(FULLY_VISIBLE_TYPE);
345
351
  fastDraw = this.areAllProposedVisibleRowsAlreadyRendered(proposedRowsVisibleCalculator);
346
352
  }
347
353
  if (fastDraw && !wtSettings.getSetting('renderAllColumns')) {
348
- const proposedColumnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
354
+ const proposedColumnsVisibleCalculator = this.createColumnsCalculator(FULLY_VISIBLE_TYPE);
349
355
  fastDraw = this.areAllProposedVisibleColumnsAlreadyRendered(proposedColumnsVisibleCalculator);
350
356
  }
351
357
  if (!fastDraw) {
352
- this.rowsRenderCalculator = rowsCalculator.getResultsFor('rendered');
353
- this.columnsRenderCalculator = columnsCalculator.getResultsFor('rendered');
358
+ this.rowsRenderCalculator = this.createRowsCalculator(RENDER_TYPE);
359
+ this.columnsRenderCalculator = this.createColumnsCalculator(RENDER_TYPE);
354
360
  }
355
- this.rowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
356
- this.columnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
357
- this.rowsPartiallyVisibleCalculator = rowsCalculator.getResultsFor('partiallyVisible');
358
- this.columnsPartiallyVisibleCalculator = columnsCalculator.getResultsFor('partiallyVisible');
361
+
362
+ // delete temporarily to make sure that renderers always use rowsRenderCalculator, not rowsVisibleCalculator
363
+ this.rowsVisibleCalculator = null;
364
+ this.columnsVisibleCalculator = null;
359
365
  return fastDraw;
360
366
  }
361
367
 
362
368
  /**
363
- * Creates rows and columns calculators (after draw, to determine what are
364
- * the actually fully visible and partially visible rows and columns).
369
+ * Creates rowsVisibleCalculator and columnsVisibleCalculator (after draw, to determine what are
370
+ * the actually fully visible rows and columns).
365
371
  */
366
372
  createVisibleCalculators() {
367
- const rowsCalculator = this.createRowsCalculator(['fullyVisible', 'partiallyVisible']);
368
- const columnsCalculator = this.createColumnsCalculator(['fullyVisible', 'partiallyVisible']);
369
- this.rowsVisibleCalculator = rowsCalculator.getResultsFor('fullyVisible');
370
- this.columnsVisibleCalculator = columnsCalculator.getResultsFor('fullyVisible');
371
- this.rowsPartiallyVisibleCalculator = rowsCalculator.getResultsFor('partiallyVisible');
372
- this.columnsPartiallyVisibleCalculator = columnsCalculator.getResultsFor('partiallyVisible');
373
+ this.rowsVisibleCalculator = this.createRowsCalculator(FULLY_VISIBLE_TYPE);
374
+ this.columnsVisibleCalculator = this.createColumnsCalculator(FULLY_VISIBLE_TYPE);
375
+ }
376
+
377
+ /**
378
+ * Creates rowsPartiallyVisibleCalculator and columnsPartiallyVisibleCalculator (after draw, to determine what are
379
+ * the actually partially visible rows and columns).
380
+ */
381
+ createPartiallyVisibleCalculators() {
382
+ this.rowsPartiallyVisibleCalculator = this.createRowsCalculator(PARTIALLY_VISIBLE_TYPE);
383
+ this.columnsPartiallyVisibleCalculator = this.createColumnsCalculator(PARTIALLY_VISIBLE_TYPE);
373
384
  }
374
385
 
375
386
  /**
package/CHANGELOG.md CHANGED
@@ -9,33 +9,6 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9
9
 
10
10
  <!-- UNVERSIONED -->
11
11
 
12
- ## [14.5.0] - 2024-07-24
13
-
14
- ### Added
15
- - Added support for other keyboard layouts besides QWERTY (e.g. AZERTY). [#11027](https://github.com/handsontable/handsontable/pull/11027)
16
- - Added missing "this" typing for the ColumnSummary plugin. [#11036](https://github.com/handsontable/handsontable/pull/11036)
17
- - Added Undo/Redo logic for the ColumnSorting/ManualColumnSorting plugins. [#11037](https://github.com/handsontable/handsontable/pull/11037)
18
- - Added new option `headerClassName`, which allows adding custom CSS classes to the column headers. [#11076](https://github.com/handsontable/handsontable/pull/11076)
19
-
20
- ### Changed
21
- - Improved the precision of calculating the height and width of columns and rows. [#11049](https://github.com/handsontable/handsontable/pull/11049)
22
- - Improved the rendering performance. [#11069](https://github.com/handsontable/handsontable/pull/11069)
23
-
24
- ### Fixed
25
- - Fixed Context.getShortcuts type. [#10910](https://github.com/handsontable/handsontable/pull/10910)
26
- - Improved performance of cell merging. [#10995](https://github.com/handsontable/handsontable/pull/10995)
27
- - Fixed a problem where clicking and dragging on cells in window-controlled scrolled instances would result in unpredictable behavior. [#10996](https://github.com/handsontable/handsontable/pull/10996)
28
- - Fixed a bug that prevented column sorting of the checkbox cell types. [#11004](https://github.com/handsontable/handsontable/pull/11004)
29
- - Fixed merged cells misalignment in overlays. [#11007](https://github.com/handsontable/handsontable/pull/11007)
30
- - Fixed selection expansion for merged cells. [#11010](https://github.com/handsontable/handsontable/pull/11010)
31
- - Fixed a problem where the table could go into an endless resize loop when one of the instance's parents was using `dvh` values for sizing, and the table was not given any size itself. [#11021](https://github.com/handsontable/handsontable/pull/11021)
32
- - Fixed a bug where the `afterSetCellMeta` was unnecessarily triggered after clicking on the comments textarea element. [#11033](https://github.com/handsontable/handsontable/pull/11033)
33
- - Fixed invalid cell states after data population that was canceled in the `beforeChange` hook. [#11035](https://github.com/handsontable/handsontable/pull/11035)
34
- - Fixed a problem with the Formulas plugin using wrong indexes when performing autofill. [#11038](https://github.com/handsontable/handsontable/pull/11038)
35
- - Fixed a problem where disabling `navigableHeaders` broke keyboard navigation in the first row if the option was previously enabled and used. [#11043](https://github.com/handsontable/handsontable/pull/11043)
36
- - Fixed a problem where the dropdown menu would not close after tapping on the table cells on mobile browsers. [#11044](https://github.com/handsontable/handsontable/pull/11044)
37
- - Fixed the header selection with `nestedHeaders` enabled not working on mobile devices. [#11051](https://github.com/handsontable/handsontable/pull/11051)
38
-
39
12
  ## [14.4.0] - 2024-06-11
40
13
 
41
14
  ### Added
package/base.js CHANGED
@@ -45,8 +45,8 @@ Handsontable.hooks = _pluginHooks.default.getSingleton();
45
45
  Handsontable.CellCoords = _src.CellCoords;
46
46
  Handsontable.CellRange = _src.CellRange;
47
47
  Handsontable.packageName = 'handsontable';
48
- Handsontable.buildDate = "23/08/2024 12:05:31";
49
- Handsontable.version = "0.0.0-next-eaf150e-20240823";
48
+ Handsontable.buildDate = "26/08/2024 13:21:06";
49
+ Handsontable.version = "0.0.0-next-0306a1a-20240826";
50
50
  Handsontable.languages = {
51
51
  dictionaryKeys: _registry.dictionaryKeys,
52
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 = "23/08/2024 12:05:37";
39
- Handsontable.version = "0.0.0-next-eaf150e-20240823";
38
+ Handsontable.buildDate = "26/08/2024 13:21:12";
39
+ Handsontable.version = "0.0.0-next-0306a1a-20240826";
40
40
  Handsontable.languages = {
41
41
  dictionaryKeys,
42
42
  getLanguageDictionary,
package/core.d.ts CHANGED
@@ -139,7 +139,8 @@ export default class Core {
139
139
  scrollViewportTo(row?: number, column?: number, snapToBottom?: boolean, snapToRight?: boolean, considerHiddenIndexes?: boolean): boolean;
140
140
  scrollToFocusedCell(callback?: () => void): void;
141
141
  selectAll(includeRowHeaders?: boolean, includeColumnHeaders?: boolean, options?: { focusPosition?: SimpleCellCoords | CellCoords, disableHeadersHighlight?: boolean }): void;
142
- selectCell(row: number, column: number | string, endRow?: number, endColumn?: number | string, scrollToCell?: boolean, changeListener?: boolean): boolean;
142
+ selectCell(row: number, column: number, endRow?: number, endColumn?: number, scrollToCell?: boolean, changeListener?: boolean): boolean;
143
+ selectCellByProp(row: number, prop: string, endRow?: number, endProp?: string, scrollToCell?: boolean): boolean;
143
144
  selectCells(coords: Array<[number, number | string, number, number | string]> | CellRange[], scrollToCell?: boolean, changeListener?: boolean): boolean;
144
145
  selectColumns(startColumn: number | string, endColumn?: number | string, focusPosition?: number | SimpleCellCoords | CellCoords): boolean;
145
146
  selectRows(startRow: number, endRow?: number, focusPosition?: number | SimpleCellCoords | CellCoords): boolean;
package/core.js CHANGED
@@ -3501,7 +3501,7 @@ function Core(rootElement, userSettings) {
3501
3501
  let width = instance._getColWidthFromSettings(column);
3502
3502
  width = instance.runHooks('modifyColWidth', width, column);
3503
3503
  if (width === undefined) {
3504
- width = _src.DEFAULT_COLUMN_WIDTH;
3504
+ width = _src.ViewportColumnsCalculator.DEFAULT_WIDTH;
3505
3505
  }
3506
3506
  return width;
3507
3507
  };
package/core.mjs CHANGED
@@ -29,7 +29,7 @@ import DataSource from "./dataMap/dataSource.mjs";
29
29
  import { spreadsheetColumnLabel } from "./helpers/data.mjs";
30
30
  import { IndexMapper } from "./translations/index.mjs";
31
31
  import { registerAsRootInstance, hasValidParameter, isRootInstance } from "./utils/rootInstance.mjs";
32
- import { DEFAULT_COLUMN_WIDTH } from "./3rdparty/walkontable/src/index.mjs";
32
+ import { ViewportColumnsCalculator } from "./3rdparty/walkontable/src/index.mjs";
33
33
  import Hooks from "./pluginHooks.mjs";
34
34
  import { hasLanguageDictionary, getValidLanguageCode, getTranslatedPhrase } from "./i18n/registry.mjs";
35
35
  import { warnUserAboutLanguageRegistration, normalizeLanguageCode } from "./i18n/utils.mjs";
@@ -3496,7 +3496,7 @@ export default function Core(rootElement, userSettings) {
3496
3496
  let width = instance._getColWidthFromSettings(column);
3497
3497
  width = instance.runHooks('modifyColWidth', width, column);
3498
3498
  if (width === undefined) {
3499
- width = DEFAULT_COLUMN_WIDTH;
3499
+ width = ViewportColumnsCalculator.DEFAULT_WIDTH;
3500
3500
  }
3501
3501
  return width;
3502
3502
  };
@@ -391,7 +391,8 @@ var _default = () => {
391
391
  * | `true` | Enable the [`AutoRowSize`](@/api/autoRowSize.md) plugin with the default configuration |
392
392
  * | An object | Enable the [`AutoRowSize`](@/api/autoRowSize.md) plugin and modify the plugin options |
393
393
  *
394
- * To give Handsontable's scrollbar a proper size, set the `autoRowSize` option to `true`.
394
+ * To give Handsontable's [scrollbar](https://handsontable.com/docs/8.0.0/demo-scrolling.html)
395
+ * a proper size, set the `autoRowSize` option to `true`.
395
396
  *
396
397
  * If you set the `autoRowSize` option to an object, you can set the following [`AutoRowSize`](@/api/autoRowSize.md) plugin options:
397
398
  *
@@ -2906,10 +2907,10 @@ var _default = () => {
2906
2907
  * manualRowMove: true,
2907
2908
  *
2908
2909
  * // enable the `ManualRowMove` plugin
2909
- * // at initialization, move row 1 to 0
2910
- * // at initialization, move row 4 to 1
2911
- * // at initialization, move row 6 to 2
2912
- * manualRowMove: [1, 4, 6],
2910
+ * // at initialization, move row 0 to 1
2911
+ * // at initialization, move row 1 to 4
2912
+ * // at initialization, move row 2 to 6
2913
+ * manualColumnMove: [1, 4, 6],
2913
2914
  * ```
2914
2915
  */
2915
2916
  manualRowMove: undefined,
@@ -388,7 +388,8 @@ export default (() => {
388
388
  * | `true` | Enable the [`AutoRowSize`](@/api/autoRowSize.md) plugin with the default configuration |
389
389
  * | An object | Enable the [`AutoRowSize`](@/api/autoRowSize.md) plugin and modify the plugin options |
390
390
  *
391
- * To give Handsontable's scrollbar a proper size, set the `autoRowSize` option to `true`.
391
+ * To give Handsontable's [scrollbar](https://handsontable.com/docs/8.0.0/demo-scrolling.html)
392
+ * a proper size, set the `autoRowSize` option to `true`.
392
393
  *
393
394
  * If you set the `autoRowSize` option to an object, you can set the following [`AutoRowSize`](@/api/autoRowSize.md) plugin options:
394
395
  *
@@ -2903,10 +2904,10 @@ export default (() => {
2903
2904
  * manualRowMove: true,
2904
2905
  *
2905
2906
  * // enable the `ManualRowMove` plugin
2906
- * // at initialization, move row 1 to 0
2907
- * // at initialization, move row 4 to 1
2908
- * // at initialization, move row 6 to 2
2909
- * manualRowMove: [1, 4, 6],
2907
+ * // at initialization, move row 0 to 1
2908
+ * // at initialization, move row 1 to 4
2909
+ * // at initialization, move row 2 to 6
2910
+ * manualColumnMove: [1, 4, 6],
2910
2911
  * ```
2911
2912
  */
2912
2913
  manualRowMove: undefined,
@@ -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-eaf150e-20240823
29
- * Release date: 30/07/2024 (built at 23/08/2024 12:05:42)
28
+ * Version: 0.0.0-next-0306a1a-20240826
29
+ * Release date: 11/06/2024 (built at 26/08/2024 13:21:16)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -523,9 +523,24 @@ innerBorderBottom - Property controlled by bottom overlay
523
523
  left: 0;
524
524
  right: 0;
525
525
  bottom: 0;
526
+ /* Fix for IE9 to spread the ":before" pseudo element to 100% height of the parent element */
527
+ bottom: -100% \9 ;
526
528
  background: #005eff;
527
529
  }
528
530
 
531
+ /* Fix for IE10 and IE11 to spread the ":before" pseudo element to 100% height of the parent element */
532
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
533
+ .handsontable td.area:before,
534
+ .handsontable td.area-1:before,
535
+ .handsontable td.area-2:before,
536
+ .handsontable td.area-3:before,
537
+ .handsontable td.area-4:before,
538
+ .handsontable td.area-5:before,
539
+ .handsontable td.area-6:before,
540
+ .handsontable td.area-7:before {
541
+ bottom: -100%;
542
+ }
543
+ }
529
544
  .handsontable td.area:before {
530
545
  opacity: 0.1;
531
546
  }
@@ -606,7 +621,6 @@ innerBorderBottom - Property controlled by bottom overlay
606
621
  -webkit-appearance: menulist-button !important;
607
622
  position: absolute;
608
623
  width: auto;
609
- border: 2px solid #4b89ff;
610
624
  }
611
625
 
612
626
  .htSelectEditor:focus {
@@ -883,26 +897,12 @@ CheckboxRenderer
883
897
 
884
898
  .handsontable[dir=ltr] div.htRight span[class*=ascending],
885
899
  .handsontable[dir=ltr] div.htRight span[class*=descending] {
886
- margin-right: 10px;
887
- margin-left: -10px;
900
+ margin-right: 20px;
888
901
  }
889
902
 
890
903
  .handsontable[dir=rtl] div.htLeft span[class*=ascending],
891
904
  .handsontable[dir=rtl] div.htLeft span[class*=descending] {
892
- margin-left: 10px;
893
- margin-right: -10px;
894
- }
895
-
896
- .handsontable[dir=ltr] div.htRight span[class*=ascending]:only-child,
897
- .handsontable[dir=ltr] div.htRight span[class*=descending]:only-child {
898
- margin-right: 15px;
899
- margin-left: -15px;
900
- }
901
-
902
- .handsontable[dir=rtl] div.htLeft span[class*=ascending]:only-child,
903
- .handsontable[dir=rtl] div.htLeft span[class*=descending]:only-child {
904
- margin-left: 15px;
905
- margin-right: -15px;
905
+ margin-left: 20px;
906
906
  }
907
907
 
908
908
  .handsontable .columnSorting.sortAction:hover {
@@ -1875,23 +1875,11 @@ textarea.HandsontableCopyPaste {
1875
1875
  opacity: 0.58;
1876
1876
  }
1877
1877
  .handsontable[dir=ltr] div.htRight span[class*=sort-] {
1878
- margin-right: 15px;
1879
- margin-left: -15px;
1880
- }
1881
-
1882
- .handsontable[dir=rtl] div.htLeft span[class*=sort-] {
1883
- margin-left: 15px;
1884
- margin-right: -15px;
1885
- }
1886
-
1887
- .handsontable[dir=ltr] div.htRight span[class*=sort-]:only-child {
1888
1878
  margin-right: 20px;
1889
- margin-left: -20px;
1890
1879
  }
1891
1880
 
1892
- .handsontable[dir=rtl] div.htLeft span[class*=sort-]:only-child {
1881
+ .handsontable[dir=rtl] div.htLeft span[class*=sort-] {
1893
1882
  margin-left: 20px;
1894
- margin-right: -20px;
1895
1883
  }
1896
1884
 
1897
1885
  /* Column's number position */
@@ -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-eaf150e-20240823
29
- * Release date: 30/07/2024 (built at 23/08/2024 12:05:42)
28
+ * Version: 0.0.0-next-0306a1a-20240826
29
+ * Release date: 11/06/2024 (built at 26/08/2024 13:21:16)
30
30
  */
31
31
  /**
32
32
  * Fix for bootstrap styles
@@ -523,9 +523,24 @@ innerBorderBottom - Property controlled by bottom overlay
523
523
  left: 0;
524
524
  right: 0;
525
525
  bottom: 0;
526
+ /* Fix for IE9 to spread the ":before" pseudo element to 100% height of the parent element */
527
+ bottom: -100% \9 ;
526
528
  background: #005eff;
527
529
  }
528
530
 
531
+ /* Fix for IE10 and IE11 to spread the ":before" pseudo element to 100% height of the parent element */
532
+ @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
533
+ .handsontable td.area:before,
534
+ .handsontable td.area-1:before,
535
+ .handsontable td.area-2:before,
536
+ .handsontable td.area-3:before,
537
+ .handsontable td.area-4:before,
538
+ .handsontable td.area-5:before,
539
+ .handsontable td.area-6:before,
540
+ .handsontable td.area-7:before {
541
+ bottom: -100%;
542
+ }
543
+ }
529
544
  .handsontable td.area:before {
530
545
  opacity: 0.1;
531
546
  }
@@ -606,7 +621,6 @@ innerBorderBottom - Property controlled by bottom overlay
606
621
  -webkit-appearance: menulist-button !important;
607
622
  position: absolute;
608
623
  width: auto;
609
- border: 2px solid #4b89ff;
610
624
  }
611
625
 
612
626
  .htSelectEditor:focus {
@@ -1116,26 +1130,12 @@ CheckboxRenderer
1116
1130
 
1117
1131
  .handsontable[dir=ltr] div.htRight span[class*=ascending],
1118
1132
  .handsontable[dir=ltr] div.htRight span[class*=descending] {
1119
- margin-right: 10px;
1120
- margin-left: -10px;
1133
+ margin-right: 20px;
1121
1134
  }
1122
1135
 
1123
1136
  .handsontable[dir=rtl] div.htLeft span[class*=ascending],
1124
1137
  .handsontable[dir=rtl] div.htLeft span[class*=descending] {
1125
- margin-left: 10px;
1126
- margin-right: -10px;
1127
- }
1128
-
1129
- .handsontable[dir=ltr] div.htRight span[class*=ascending]:only-child,
1130
- .handsontable[dir=ltr] div.htRight span[class*=descending]:only-child {
1131
- margin-right: 15px;
1132
- margin-left: -15px;
1133
- }
1134
-
1135
- .handsontable[dir=rtl] div.htLeft span[class*=ascending]:only-child,
1136
- .handsontable[dir=rtl] div.htLeft span[class*=descending]:only-child {
1137
- margin-left: 15px;
1138
- margin-right: -15px;
1138
+ margin-left: 20px;
1139
1139
  }
1140
1140
 
1141
1141
  .handsontable .columnSorting.sortAction:hover {
@@ -2108,23 +2108,11 @@ textarea.HandsontableCopyPaste {
2108
2108
  opacity: 0.58;
2109
2109
  }
2110
2110
  .handsontable[dir=ltr] div.htRight span[class*=sort-] {
2111
- margin-right: 15px;
2112
- margin-left: -15px;
2113
- }
2114
-
2115
- .handsontable[dir=rtl] div.htLeft span[class*=sort-] {
2116
- margin-left: 15px;
2117
- margin-right: -15px;
2118
- }
2119
-
2120
- .handsontable[dir=ltr] div.htRight span[class*=sort-]:only-child {
2121
2111
  margin-right: 20px;
2122
- margin-left: -20px;
2123
2112
  }
2124
2113
 
2125
- .handsontable[dir=rtl] div.htLeft span[class*=sort-]:only-child {
2114
+ .handsontable[dir=rtl] div.htLeft span[class*=sort-] {
2126
2115
  margin-left: 20px;
2127
- margin-right: -20px;
2128
2116
  }
2129
2117
 
2130
2118
  /* Column's number position */