@odoo/o-spreadsheet 16.0.62 → 16.0.64

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.
@@ -2399,11 +2399,12 @@ class UuidGenerator {
2399
2399
  if (this.isFastIdStrategy) {
2400
2400
  this.fastIdStart++;
2401
2401
  return String(this.fastIdStart);
2402
- //@ts-ignore
2403
2402
  }
2404
- else if (window.crypto && window.crypto.getRandomValues) {
2405
- //@ts-ignore
2406
- return ([1e7] + -1e3).replace(/[018]/g, (c) => (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));
2403
+ else if (window.crypto) {
2404
+ return "10000000-1000".replace(/[01]/g, (c) => {
2405
+ const n = Number(c);
2406
+ return (n ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (n / 4)))).toString(16);
2407
+ });
2407
2408
  }
2408
2409
  else {
2409
2410
  // mainly for jest and other browsers that do not have the crypto functionality
@@ -2421,11 +2422,12 @@ class UuidGenerator {
2421
2422
  if (this.isFastIdStrategy) {
2422
2423
  this.fastIdStart++;
2423
2424
  return String(this.fastIdStart);
2424
- //@ts-ignore
2425
2425
  }
2426
- else if (window.crypto && window.crypto.getRandomValues) {
2427
- //@ts-ignore
2428
- return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));
2426
+ else if (window.crypto) {
2427
+ return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => {
2428
+ const n = Number(c);
2429
+ return (n ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (n / 4)))).toString(16);
2430
+ });
2429
2431
  }
2430
2432
  else {
2431
2433
  // mainly for jest and other browsers that do not have the crypto functionality
@@ -3582,10 +3584,13 @@ autofillRulesRegistry
3582
3584
  })
3583
3585
  .add("increment_number", {
3584
3586
  condition: (cell) => cell.evaluated.type === CellValueType.number,
3585
- generateRule: (cell, cells) => {
3587
+ generateRule: (cell, cells, direction) => {
3586
3588
  const group = getGroup(cell, cells);
3587
3589
  let increment = 1;
3588
- if (group.length == 2) {
3590
+ if (group.length === 1 && ["up", "left"].includes(direction)) {
3591
+ increment = -1;
3592
+ }
3593
+ else if (group.length == 2) {
3589
3594
  increment = (group[1] - group[0]) * 2;
3590
3595
  }
3591
3596
  else if (group.length > 2) {
@@ -22185,6 +22190,9 @@ class ColResizer extends AbstractResizer {
22185
22190
  this.MAX_SIZE_MARGIN = 90;
22186
22191
  this.MIN_ELEMENT_SIZE = MIN_COL_WIDTH;
22187
22192
  }
22193
+ get sheetId() {
22194
+ return this.env.model.getters.getActiveSheetId();
22195
+ }
22188
22196
  _getEvOffset(ev) {
22189
22197
  return ev.offsetX;
22190
22198
  }
@@ -22207,10 +22215,10 @@ class ColResizer extends AbstractResizer {
22207
22215
  return this.env.model.getters.getEdgeScrollCol(position, position, position);
22208
22216
  }
22209
22217
  _getDimensionsInViewport(index) {
22210
- return this.env.model.getters.getColDimensionsInViewport(this.env.model.getters.getActiveSheetId(), index);
22218
+ return this.env.model.getters.getColDimensionsInViewport(this.sheetId, index);
22211
22219
  }
22212
22220
  _getElementSize(index) {
22213
- return this.env.model.getters.getColSize(this.env.model.getters.getActiveSheetId(), index);
22221
+ return this.env.model.getters.getColSize(this.sheetId, index);
22214
22222
  }
22215
22223
  _getMaxSize() {
22216
22224
  return this.colResizerRef.el.clientWidth;
@@ -22221,7 +22229,7 @@ class ColResizer extends AbstractResizer {
22221
22229
  const cols = this.env.model.getters.getActiveCols();
22222
22230
  this.env.model.dispatch("RESIZE_COLUMNS_ROWS", {
22223
22231
  dimension: "COL",
22224
- sheetId: this.env.model.getters.getActiveSheetId(),
22232
+ sheetId: this.sheetId,
22225
22233
  elements: cols.has(index) ? [...cols] : [index],
22226
22234
  size,
22227
22235
  });
@@ -22234,7 +22242,7 @@ class ColResizer extends AbstractResizer {
22234
22242
  elements.push(colIndex);
22235
22243
  }
22236
22244
  const result = this.env.model.dispatch("MOVE_COLUMNS_ROWS", {
22237
- sheetId: this.env.model.getters.getActiveSheetId(),
22245
+ sheetId: this.sheetId,
22238
22246
  dimension: "COL",
22239
22247
  base: this.state.base,
22240
22248
  elements,
@@ -22253,7 +22261,7 @@ class ColResizer extends AbstractResizer {
22253
22261
  _fitElementSize(index) {
22254
22262
  const cols = this.env.model.getters.getActiveCols();
22255
22263
  this.env.model.dispatch("AUTORESIZE_COLUMNS", {
22256
- sheetId: this.env.model.getters.getActiveSheetId(),
22264
+ sheetId: this.sheetId,
22257
22265
  cols: cols.has(index) ? [...cols] : [index],
22258
22266
  });
22259
22267
  }
@@ -22264,7 +22272,7 @@ class ColResizer extends AbstractResizer {
22264
22272
  return this.env.model.getters.getActiveCols();
22265
22273
  }
22266
22274
  _getPreviousVisibleElement(index) {
22267
- const sheetId = this.env.model.getters.getActiveSheetId();
22275
+ const sheetId = this.sheetId;
22268
22276
  let row;
22269
22277
  for (row = index - 1; row >= 0; row--) {
22270
22278
  if (!this.env.model.getters.isColHidden(sheetId, row)) {
@@ -22275,7 +22283,7 @@ class ColResizer extends AbstractResizer {
22275
22283
  }
22276
22284
  unhide(hiddenElements) {
22277
22285
  this.env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
22278
- sheetId: this.env.model.getters.getActiveSheetId(),
22286
+ sheetId: this.sheetId,
22279
22287
  elements: hiddenElements,
22280
22288
  dimension: "COL",
22281
22289
  });
@@ -22292,7 +22300,7 @@ css /* scss */ `
22292
22300
  left: 0;
22293
22301
  right: 0;
22294
22302
  width: ${HEADER_WIDTH}px;
22295
- height: 100%;
22303
+ height: calc(100% - ${HEADER_HEIGHT + SCROLLBAR_WIDTH}px);
22296
22304
  &.o-dragging {
22297
22305
  cursor: grabbing;
22298
22306
  }
@@ -22355,6 +22363,9 @@ class RowResizer extends AbstractResizer {
22355
22363
  this.MAX_SIZE_MARGIN = 60;
22356
22364
  this.MIN_ELEMENT_SIZE = MIN_ROW_HEIGHT;
22357
22365
  }
22366
+ get sheetId() {
22367
+ return this.env.model.getters.getActiveSheetId();
22368
+ }
22358
22369
  _getEvOffset(ev) {
22359
22370
  return ev.offsetY;
22360
22371
  }
@@ -22377,10 +22388,10 @@ class RowResizer extends AbstractResizer {
22377
22388
  return this.env.model.getters.getEdgeScrollRow(position, position, position);
22378
22389
  }
22379
22390
  _getDimensionsInViewport(index) {
22380
- return this.env.model.getters.getRowDimensionsInViewport(this.env.model.getters.getActiveSheetId(), index);
22391
+ return this.env.model.getters.getRowDimensionsInViewport(this.sheetId, index);
22381
22392
  }
22382
22393
  _getElementSize(index) {
22383
- return this.env.model.getters.getRowSize(this.env.model.getters.getActiveSheetId(), index);
22394
+ return this.env.model.getters.getRowSize(this.sheetId, index);
22384
22395
  }
22385
22396
  _getMaxSize() {
22386
22397
  return this.rowResizerRef.el.clientHeight;
@@ -22391,7 +22402,7 @@ class RowResizer extends AbstractResizer {
22391
22402
  const rows = this.env.model.getters.getActiveRows();
22392
22403
  this.env.model.dispatch("RESIZE_COLUMNS_ROWS", {
22393
22404
  dimension: "ROW",
22394
- sheetId: this.env.model.getters.getActiveSheetId(),
22405
+ sheetId: this.sheetId,
22395
22406
  elements: rows.has(index) ? [...rows] : [index],
22396
22407
  size,
22397
22408
  });
@@ -22404,7 +22415,7 @@ class RowResizer extends AbstractResizer {
22404
22415
  elements.push(rowIndex);
22405
22416
  }
22406
22417
  const result = this.env.model.dispatch("MOVE_COLUMNS_ROWS", {
22407
- sheetId: this.env.model.getters.getActiveSheetId(),
22418
+ sheetId: this.sheetId,
22408
22419
  dimension: "ROW",
22409
22420
  base: this.state.base,
22410
22421
  elements,
@@ -22423,7 +22434,7 @@ class RowResizer extends AbstractResizer {
22423
22434
  _fitElementSize(index) {
22424
22435
  const rows = this.env.model.getters.getActiveRows();
22425
22436
  this.env.model.dispatch("AUTORESIZE_ROWS", {
22426
- sheetId: this.env.model.getters.getActiveSheetId(),
22437
+ sheetId: this.sheetId,
22427
22438
  rows: rows.has(index) ? [...rows] : [index],
22428
22439
  });
22429
22440
  }
@@ -22434,7 +22445,7 @@ class RowResizer extends AbstractResizer {
22434
22445
  return this.env.model.getters.getActiveRows();
22435
22446
  }
22436
22447
  _getPreviousVisibleElement(index) {
22437
- const sheetId = this.env.model.getters.getActiveSheetId();
22448
+ const sheetId = this.sheetId;
22438
22449
  let row;
22439
22450
  for (row = index - 1; row >= 0; row--) {
22440
22451
  if (!this.env.model.getters.isRowHidden(sheetId, row)) {
@@ -22445,7 +22456,7 @@ class RowResizer extends AbstractResizer {
22445
22456
  }
22446
22457
  unhide(hiddenElements) {
22447
22458
  this.env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
22448
- sheetId: this.env.model.getters.getActiveSheetId(),
22459
+ sheetId: this.sheetId,
22449
22460
  dimension: "ROW",
22450
22461
  elements: hiddenElements,
22451
22462
  });
@@ -25523,29 +25534,33 @@ function applyStyleToZone(appliedStyle, zone, cells, styles) {
25523
25534
  * In all the sheets, replace the table-only references in the formula cells with standard references.
25524
25535
  */
25525
25536
  function convertTableFormulaReferences(convertedSheets, xlsxSheets) {
25526
- for (let sheet of convertedSheets) {
25527
- const tables = xlsxSheets.find((s) => s.sheetName === sheet.name).tables;
25537
+ for (let tableSheet of convertedSheets) {
25538
+ const tables = xlsxSheets.find((s) => s.sheetName === tableSheet.name).tables;
25528
25539
  for (let table of tables) {
25529
25540
  const tabRef = table.name + "[";
25530
- for (let position of positions(toZone(table.ref))) {
25531
- const xc = toXC(position.col, position.row);
25532
- const cell = sheet.cells[xc];
25533
- if (cell && cell.content && cell.content.startsWith("=")) {
25534
- let refIndex;
25535
- while ((refIndex = cell.content.indexOf(tabRef)) !== -1) {
25536
- let reference = cell.content.slice(refIndex + tabRef.length);
25537
- // Expression can either be tableName[colName] or tableName[[#This Row], [colName]]
25538
- let endIndex = reference.indexOf("]");
25539
- if (reference.startsWith(`[`)) {
25540
- endIndex = reference.indexOf("]", endIndex + 1);
25541
- endIndex = reference.indexOf("]", endIndex + 1);
25541
+ for (let sheet of convertedSheets) {
25542
+ for (let xc in sheet.cells) {
25543
+ const cell = sheet.cells[xc];
25544
+ if (cell && cell.content && cell.content.startsWith("=")) {
25545
+ let refIndex;
25546
+ while ((refIndex = cell.content.indexOf(tabRef)) !== -1) {
25547
+ let endIndex = refIndex + tabRef.length;
25548
+ let openBrackets = 1;
25549
+ while (openBrackets > 0 && endIndex < cell.content.length) {
25550
+ if (cell.content[endIndex] === "[") {
25551
+ openBrackets++;
25552
+ }
25553
+ else if (cell.content[endIndex] === "]") {
25554
+ openBrackets--;
25555
+ }
25556
+ endIndex++;
25557
+ }
25558
+ let reference = cell.content.slice(refIndex + tabRef.length, endIndex - 1);
25559
+ const sheetPrefix = tableSheet.id === sheet.id ? "" : tableSheet.name + "!";
25560
+ const convertedRef = convertTableReference(sheetPrefix, reference, table, xc);
25561
+ cell.content =
25562
+ cell.content.slice(0, refIndex) + convertedRef + cell.content.slice(endIndex);
25542
25563
  }
25543
- reference = reference.slice(0, endIndex);
25544
- const convertedRef = convertTableReference(reference, table, xc);
25545
- cell.content =
25546
- cell.content.slice(0, refIndex) +
25547
- convertedRef +
25548
- cell.content.slice(tabRef.length + refIndex + endIndex + 1);
25549
25564
  }
25550
25565
  }
25551
25566
  }
@@ -25553,11 +25568,17 @@ function convertTableFormulaReferences(convertedSheets, xlsxSheets) {
25553
25568
  }
25554
25569
  }
25555
25570
  /**
25556
- * Convert table-specific references in formulas into standard references.
25571
+ * Convert table-specific references in formulas into standard references. A table reference is composed of columns names,
25572
+ * and of keywords determining the rows of the table to reference.
25557
25573
  *
25558
25574
  * A reference in a table can have the form (only the part between brackets should be given to this function):
25559
25575
  * - tableName[colName] : reference to the whole column "colName"
25576
+ * - tableName[#keyword] : reference to the whatever row the keyword refers to
25560
25577
  * - tableName[[#keyword], [colName]] : reference to some of the element(s) of the column colName
25578
+ * - tableName[[#keyword], [colName]:[col2Name]] : reference to some of the element(s) of the columns colName to col2Name
25579
+ * - tableName[[#keyword1], [#keyword2], [colName]] : reference to all the rows referenced by the keywords in the column colName
25580
+ * - tableName[[#keyword1], [colName], [#keyword2]]: the keywords and colName can be in any order
25581
+ *
25561
25582
  *
25562
25583
  * The available keywords are :
25563
25584
  * - #All : all the column (including totals)
@@ -25565,58 +25586,109 @@ function convertTableFormulaReferences(convertedSheets, xlsxSheets) {
25565
25586
  * - #Headers : only the header of the column
25566
25587
  * - #Totals : only the totals of the column
25567
25588
  * - #This Row : only the element in the same row as the cell
25589
+ *
25590
+ * Note that the only valid combination of multiple keywords are #Data + #Totals and #Headers + #Data.
25568
25591
  */
25569
- function convertTableReference(expr, table, cellXc) {
25570
- const refElements = expr.split(",");
25592
+ function convertTableReference(sheetPrefix, expr, table, cellXc) {
25593
+ // TODO: Ideally we'd want to make a real tokenizer, this simple approach won't work if for example the column name
25594
+ // contain # or , characters. But that's probably an edge case that we can ignore for now.
25595
+ const parts = expr.split(",").map((part) => part.trim());
25571
25596
  const tableZone = toZone(table.ref);
25572
- const refZone = { ...tableZone };
25573
- let isReferencedZoneValid = true;
25574
- // Single column reference
25575
- if (refElements.length === 1) {
25576
- const colRelativeIndex = table.cols.findIndex((col) => col.name === refElements[0]);
25577
- refZone.left = refZone.right = colRelativeIndex + tableZone.left;
25578
- if (table.headerRowCount) {
25579
- refZone.top += table.headerRowCount;
25580
- }
25581
- if (table.totalsRowCount) {
25582
- refZone.bottom -= 1;
25597
+ const colIndexes = [];
25598
+ const rowIndexes = [];
25599
+ const foundKeywords = [];
25600
+ for (const part of parts) {
25601
+ if (removeBrackets(part).startsWith("#")) {
25602
+ const keyWord = removeBrackets(part);
25603
+ foundKeywords.push(keyWord);
25604
+ switch (keyWord) {
25605
+ case "#All":
25606
+ rowIndexes.push(tableZone.top, tableZone.bottom);
25607
+ break;
25608
+ case "#Data":
25609
+ const top = table.headerRowCount ? tableZone.top + table.headerRowCount : tableZone.top;
25610
+ const bottom = table.totalsRowCount
25611
+ ? tableZone.bottom - table.totalsRowCount
25612
+ : tableZone.bottom;
25613
+ rowIndexes.push(top, bottom);
25614
+ break;
25615
+ case "#This Row":
25616
+ rowIndexes.push(toCartesian(cellXc).row);
25617
+ break;
25618
+ case "#Headers":
25619
+ if (!table.headerRowCount) {
25620
+ return INCORRECT_RANGE_STRING;
25621
+ }
25622
+ rowIndexes.push(tableZone.top);
25623
+ break;
25624
+ case "#Totals":
25625
+ if (!table.totalsRowCount) {
25626
+ return INCORRECT_RANGE_STRING;
25627
+ }
25628
+ rowIndexes.push(tableZone.bottom);
25629
+ break;
25630
+ }
25583
25631
  }
25584
- }
25585
- // Other references
25586
- else {
25587
- switch (refElements[0].slice(1, refElements[0].length - 1)) {
25588
- case "#All":
25589
- refZone.top = table.headerRowCount ? tableZone.top + table.headerRowCount : tableZone.top;
25590
- refZone.bottom = tableZone.bottom;
25591
- break;
25592
- case "#Data":
25593
- refZone.top = table.headerRowCount ? tableZone.top + table.headerRowCount : tableZone.top;
25594
- refZone.bottom = table.totalsRowCount ? tableZone.bottom + 1 : tableZone.bottom;
25595
- break;
25596
- case "#This Row":
25597
- refZone.top = refZone.bottom = toCartesian(cellXc).row;
25598
- break;
25599
- case "#Headers":
25600
- refZone.top = refZone.bottom = tableZone.top;
25601
- if (!table.headerRowCount) {
25602
- isReferencedZoneValid = false;
25603
- }
25604
- break;
25605
- case "#Totals":
25606
- refZone.top = refZone.bottom = tableZone.bottom;
25607
- if (!table.totalsRowCount) {
25608
- isReferencedZoneValid = false;
25632
+ else {
25633
+ const columns = part
25634
+ .split(":")
25635
+ .map((part) => part.trim())
25636
+ .map(removeBrackets);
25637
+ if (colIndexes.length) {
25638
+ return INCORRECT_RANGE_STRING;
25639
+ }
25640
+ const colRelativeIndex = table.cols.findIndex((col) => col.name === columns[0]);
25641
+ if (colRelativeIndex === -1) {
25642
+ return INCORRECT_RANGE_STRING;
25643
+ }
25644
+ colIndexes.push(colRelativeIndex + tableZone.left);
25645
+ if (columns[1]) {
25646
+ const colRelativeIndex2 = table.cols.findIndex((col) => col.name === columns[1]);
25647
+ if (colRelativeIndex2 === -1) {
25648
+ return INCORRECT_RANGE_STRING;
25609
25649
  }
25610
- break;
25650
+ colIndexes.push(colRelativeIndex2 + tableZone.left);
25651
+ }
25611
25652
  }
25612
- const colRef = refElements[1].slice(1, refElements[1].length - 1);
25613
- const colRelativeIndex = table.cols.findIndex((col) => col.name === colRef);
25614
- refZone.left = refZone.right = colRelativeIndex + tableZone.left;
25615
25653
  }
25616
- if (!isReferencedZoneValid) {
25654
+ if (!areKeywordsCompatible(foundKeywords)) {
25617
25655
  return INCORRECT_RANGE_STRING;
25618
25656
  }
25619
- return refZone.top !== refZone.bottom ? zoneToXc(refZone) : toXC(refZone.left, refZone.top);
25657
+ if (rowIndexes.length === 0) {
25658
+ const top = table.headerRowCount ? tableZone.top + table.headerRowCount : tableZone.top;
25659
+ const bottom = table.totalsRowCount
25660
+ ? tableZone.bottom - table.totalsRowCount
25661
+ : tableZone.bottom;
25662
+ rowIndexes.push(top, bottom);
25663
+ }
25664
+ if (colIndexes.length === 0) {
25665
+ colIndexes.push(tableZone.left, tableZone.right);
25666
+ }
25667
+ const refZone = {
25668
+ top: Math.min(...rowIndexes),
25669
+ left: Math.min(...colIndexes),
25670
+ bottom: Math.max(...rowIndexes),
25671
+ right: Math.max(...colIndexes),
25672
+ };
25673
+ return sheetPrefix + zoneToXc(refZone);
25674
+ }
25675
+ function removeBrackets(str) {
25676
+ return str.startsWith("[") && str.endsWith("]") ? str.slice(1, str.length - 1) : str;
25677
+ }
25678
+ function areKeywordsCompatible(keywords) {
25679
+ if (keywords.length < 2) {
25680
+ return true;
25681
+ }
25682
+ else if (keywords.length > 2) {
25683
+ return false;
25684
+ }
25685
+ else if (keywords.includes("#Data") && keywords.includes("#Totals")) {
25686
+ return true;
25687
+ }
25688
+ else if (keywords.includes("#Headers") && keywords.includes("#Data")) {
25689
+ return true;
25690
+ }
25691
+ return false;
25620
25692
  }
25621
25693
 
25622
25694
  // -------------------------------------
@@ -31594,7 +31666,7 @@ class AutofillPlugin extends UIPlugin {
31594
31666
  getRule(cell, cells) {
31595
31667
  const rules = autofillRulesRegistry.getAll().sort((a, b) => a.sequence - b.sequence);
31596
31668
  const rule = rules.find((rule) => rule.condition(cell, cells));
31597
- return rule && rule.generateRule(cell, cells);
31669
+ return rule && this.direction && rule.generateRule(cell, cells, this.direction);
31598
31670
  }
31599
31671
  /**
31600
31672
  * Create the generator to be able to autofill the next cells.
@@ -37496,7 +37568,8 @@ class SheetViewPlugin extends UIPlugin {
37496
37568
  ? this.getters.getSheetViewVisibleCols()
37497
37569
  : this.getters.getSheetViewVisibleRows();
37498
37570
  const startIndex = visibleHeaders.findIndex((header) => referenceHeaderIndex >= header);
37499
- const endIndex = visibleHeaders.findIndex((header) => targetHeaderIndex <= header);
37571
+ let endIndex = visibleHeaders.findIndex((header) => targetHeaderIndex <= header);
37572
+ endIndex = endIndex === -1 ? visibleHeaders.length : endIndex;
37500
37573
  const relevantIndexes = visibleHeaders.slice(startIndex, endIndex);
37501
37574
  let offset = 0;
37502
37575
  for (const i of relevantIndexes) {
@@ -43689,6 +43762,6 @@ exports.setTranslationMethod = setTranslationMethod;
43689
43762
  exports.tokenize = tokenize;
43690
43763
 
43691
43764
 
43692
- __info__.version = '16.0.62';
43693
- __info__.date = '2025-02-14T08:36:41.388Z';
43694
- __info__.hash = '34f2802';
43765
+ __info__.version = '16.0.64';
43766
+ __info__.date = '2025-03-07T10:29:50.957Z';
43767
+ __info__.hash = '20def15';
@@ -5207,7 +5207,7 @@ declare class MenuItemRegistry extends Registry<FullMenuItem> {
5207
5207
  */
5208
5208
  interface AutofillRule {
5209
5209
  condition: (cell: Cell, cells: (Cell | undefined)[]) => boolean;
5210
- generateRule: (cell: Cell, cells: (Cell | undefined)[]) => AutofillModifier;
5210
+ generateRule: (cell: Cell, cells: (Cell | undefined)[], direction: DIRECTION) => AutofillModifier;
5211
5211
  sequence: number;
5212
5212
  }
5213
5213
 
@@ -5939,6 +5939,7 @@ declare class ColResizer extends AbstractResizer {
5939
5939
  static template: string;
5940
5940
  private colResizerRef;
5941
5941
  setup(): void;
5942
+ get sheetId(): UID;
5942
5943
  _getEvOffset(ev: MouseEvent): Pixel;
5943
5944
  _getViewportOffset(): Pixel;
5944
5945
  _getClientPosition(ev: MouseEvent): Pixel;
@@ -5964,6 +5965,7 @@ declare class RowResizer extends AbstractResizer {
5964
5965
  static template: string;
5965
5966
  setup(): void;
5966
5967
  private rowResizerRef;
5968
+ get sheetId(): UID;
5967
5969
  _getEvOffset(ev: MouseEvent): Pixel;
5968
5970
  _getViewportOffset(): Pixel;
5969
5971
  _getClientPosition(ev: MouseEvent): Pixel;