@odoo/o-spreadsheet 18.0.25 → 18.0.26

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.
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * This file is generated by o-spreadsheet build tools. Do not edit it.
4
4
  * @see https://github.com/odoo/o-spreadsheet
5
- * @version 18.0.25
6
- * @date 2025-04-25T08:08:43.377Z
7
- * @hash 24aac2c
5
+ * @version 18.0.26
6
+ * @date 2025-05-02T12:30:31.966Z
7
+ * @hash 5bdf504
8
8
  */
9
9
 
10
10
  'use strict';
@@ -3593,6 +3593,7 @@ exports.CommandResult = void 0;
3593
3593
  CommandResult["ValueCellIsInvalidFormula"] = "ValueCellIsInvalidFormula";
3594
3594
  CommandResult["InvalidDefinition"] = "InvalidDefinition";
3595
3595
  CommandResult["InvalidColor"] = "InvalidColor";
3596
+ CommandResult["InvalidPivotDataSet"] = "InvalidPivotDataSet";
3596
3597
  })(exports.CommandResult || (exports.CommandResult = {}));
3597
3598
 
3598
3599
  const DEFAULT_LOCALES = [
@@ -16917,6 +16918,7 @@ class ChartJsComponent extends owl.Component {
16917
16918
  canvas = owl.useRef("graphContainer");
16918
16919
  chart;
16919
16920
  currentRuntime;
16921
+ currentDevicePixelRatio = window.devicePixelRatio;
16920
16922
  get background() {
16921
16923
  return this.chartRuntime.background;
16922
16924
  }
@@ -16950,11 +16952,11 @@ class ChartJsComponent extends owl.Component {
16950
16952
  }
16951
16953
  this.currentRuntime = runtime;
16952
16954
  }
16955
+ else if (this.currentDevicePixelRatio !== window.devicePixelRatio) {
16956
+ this.currentDevicePixelRatio = window.devicePixelRatio;
16957
+ this.updateChartJs(deepCopy(this.currentRuntime));
16958
+ }
16953
16959
  });
16954
- owl.useEffect(() => {
16955
- this.currentRuntime = this.chartRuntime;
16956
- this.updateChartJs(deepCopy(this.currentRuntime));
16957
- }, () => [window.devicePixelRatio]);
16958
16960
  }
16959
16961
  createChart(chartData) {
16960
16962
  const canvas = this.canvas.el;
@@ -29059,9 +29061,6 @@ class BarChart extends AbstractChart {
29059
29061
  };
29060
29062
  }
29061
29063
  getDefinitionForExcel() {
29062
- // Excel does not support aggregating labels
29063
- if (this.aggregated)
29064
- return undefined;
29065
29064
  const dataSets = this.dataSets
29066
29065
  .map((ds) => toExcelDataset(this.getters, ds))
29067
29066
  .filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
@@ -30302,9 +30301,6 @@ class LineChart extends AbstractChart {
30302
30301
  return new LineChart(definition, this.sheetId, this.getters);
30303
30302
  }
30304
30303
  getDefinitionForExcel() {
30305
- // Excel does not support aggregating labels
30306
- if (this.aggregated)
30307
- return undefined;
30308
30304
  const dataSets = this.dataSets
30309
30305
  .map((ds) => toExcelDataset(this.getters, ds))
30310
30306
  .filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
@@ -30415,9 +30411,6 @@ class PieChart extends AbstractChart {
30415
30411
  return new PieChart(definition, sheetId, this.getters);
30416
30412
  }
30417
30413
  getDefinitionForExcel() {
30418
- // Excel does not support aggregating labels
30419
- if (this.aggregated)
30420
- return undefined;
30421
30414
  const dataSets = this.dataSets
30422
30415
  .map((ds) => toExcelDataset(this.getters, ds))
30423
30416
  .filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
@@ -32636,18 +32629,28 @@ linkMenuRegistry.add("sheet", {
32636
32629
  function useInterval(callback, delay) {
32637
32630
  let intervalId;
32638
32631
  const { setInterval, clearInterval } = window;
32632
+ const pause = () => {
32633
+ clearInterval(intervalId);
32634
+ intervalId = undefined;
32635
+ };
32636
+ const safeCallback = () => {
32637
+ try {
32638
+ callback();
32639
+ }
32640
+ catch (e) {
32641
+ pause();
32642
+ throw e;
32643
+ }
32644
+ };
32639
32645
  owl.useEffect(() => {
32640
- intervalId = setInterval(callback, delay);
32646
+ intervalId = setInterval(safeCallback, delay);
32641
32647
  return () => clearInterval(intervalId);
32642
32648
  }, () => [delay]);
32643
32649
  return {
32644
- pause: () => {
32645
- clearInterval(intervalId);
32646
- intervalId = undefined;
32647
- },
32650
+ pause,
32648
32651
  resume: () => {
32649
32652
  if (intervalId === undefined) {
32650
- intervalId = setInterval(callback, delay);
32653
+ intervalId = setInterval(safeCallback, delay);
32651
32654
  }
32652
32655
  },
32653
32656
  };
@@ -48367,7 +48370,7 @@ css /* scss */ `
48367
48370
  position: absolute;
48368
48371
  top: 0;
48369
48372
  left: ${HEADER_WIDTH}px;
48370
- right: 0;
48373
+ right: ${SCROLLBAR_WIDTH}px;
48371
48374
  height: ${HEADER_HEIGHT}px;
48372
48375
  &.o-dragging {
48373
48376
  cursor: grabbing;
@@ -48533,9 +48536,8 @@ css /* scss */ `
48533
48536
  position: absolute;
48534
48537
  top: ${HEADER_HEIGHT}px;
48535
48538
  left: 0;
48536
- right: 0;
48539
+ bottom: ${SCROLLBAR_WIDTH}px;
48537
48540
  width: ${HEADER_WIDTH}px;
48538
- height: calc(100% - ${HEADER_HEIGHT + SCROLLBAR_WIDTH}px);
48539
48541
  &.o-dragging {
48540
48542
  cursor: grabbing;
48541
48543
  }
@@ -56620,6 +56622,15 @@ function adaptPivotRange(range, applyChange) {
56620
56622
  }
56621
56623
  }
56622
56624
  class SpreadsheetPivotCorePlugin extends CorePlugin {
56625
+ allowDispatch(cmd) {
56626
+ switch (cmd.type) {
56627
+ case "ADD_PIVOT":
56628
+ case "UPDATE_PIVOT":
56629
+ const definition = cmd.pivot;
56630
+ return this.checkDataSetValidity(definition);
56631
+ }
56632
+ return "Success" /* CommandResult.Success */;
56633
+ }
56623
56634
  adaptRanges(applyChange) {
56624
56635
  for (const pivotId of this.getters.getPivotIds()) {
56625
56636
  const definition = this.getters.getPivotCoreDefinition(pivotId);
@@ -56638,6 +56649,16 @@ class SpreadsheetPivotCorePlugin extends CorePlugin {
56638
56649
  }
56639
56650
  }
56640
56651
  }
56652
+ checkDataSetValidity(definition) {
56653
+ if (definition.type === "SPREADSHEET" && definition.dataSet) {
56654
+ const { zone, sheetId } = definition.dataSet;
56655
+ if (!sheetId || !this.getters.tryGetSheet(sheetId) || !zone || !isZoneValid(zone)) {
56656
+ return "InvalidDataSet" /* CommandResult.InvalidDataSet */;
56657
+ }
56658
+ return this.getters.checkZonesExistInSheet(sheetId, [zone]);
56659
+ }
56660
+ return "Success" /* CommandResult.Success */;
56661
+ }
56641
56662
  }
56642
56663
 
56643
56664
  class TableStylePlugin extends CorePlugin {
@@ -59475,7 +59496,7 @@ class DynamicTablesPlugin extends UIPlugin {
59475
59496
  tables = {};
59476
59497
  handle(cmd) {
59477
59498
  if (invalidateEvaluationCommands.has(cmd.type) ||
59478
- (cmd.type === "UPDATE_CELL" && "content" in cmd) ||
59499
+ (cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
59479
59500
  cmd.type === "EVALUATE_CELLS") {
59480
59501
  this.tables = {};
59481
59502
  return;
@@ -63279,7 +63300,7 @@ class TableComputedStylePlugin extends UIPlugin {
63279
63300
  tableStyles = {};
63280
63301
  handle(cmd) {
63281
63302
  if (invalidateEvaluationCommands.has(cmd.type) ||
63282
- (cmd.type === "UPDATE_CELL" && "content" in cmd) ||
63303
+ (cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
63283
63304
  cmd.type === "EVALUATE_CELLS") {
63284
63305
  this.tableStyles = {};
63285
63306
  return;
@@ -65243,6 +65264,8 @@ class GridSelectionPlugin extends UIPlugin {
65243
65264
  });
65244
65265
  this.selectCell(col, row);
65245
65266
  }
65267
+ const { col, row } = this.gridSelection.anchor.cell;
65268
+ this.moveClient({ sheetId: this.activeSheet.id, col, row });
65246
65269
  }
65247
65270
  /**
65248
65271
  * Ensure selections are not outside sheet boundaries.
@@ -65975,8 +65998,11 @@ class SheetViewPlugin extends UIPlugin {
65975
65998
  case "REMOVE_TABLE":
65976
65999
  case "UPDATE_TABLE":
65977
66000
  case "UPDATE_FILTER":
65978
- this.sheetsWithDirtyViewports.add(cmd.sheetId);
65979
- break;
66001
+ case "UNFREEZE_ROWS":
66002
+ case "UNFREEZE_COLUMNS":
66003
+ case "FREEZE_COLUMNS":
66004
+ case "FREEZE_ROWS":
66005
+ case "UNFREEZE_COLUMNS_ROWS":
65980
66006
  case "REMOVE_COLUMNS_ROWS":
65981
66007
  case "RESIZE_COLUMNS_ROWS":
65982
66008
  case "HIDE_COLUMNS_ROWS":
@@ -65989,11 +66015,9 @@ class SheetViewPlugin extends UIPlugin {
65989
66015
  case "FOLD_HEADER_GROUPS_IN_ZONE":
65990
66016
  case "UNFOLD_HEADER_GROUPS_IN_ZONE":
65991
66017
  case "UNFOLD_ALL_HEADER_GROUPS":
65992
- case "FOLD_ALL_HEADER_GROUPS": {
65993
- const sheetId = "sheetId" in cmd ? cmd.sheetId : this.getters.getActiveSheetId();
65994
- this.sheetsWithDirtyViewports.add(sheetId);
66018
+ case "FOLD_ALL_HEADER_GROUPS":
66019
+ this.sheetsWithDirtyViewports.add(cmd.sheetId);
65995
66020
  break;
65996
- }
65997
66021
  case "UPDATE_CELL":
65998
66022
  // update cell content or format can change hidden rows because of data filters
65999
66023
  if ("content" in cmd || "format" in cmd || cmd.style?.fontSize !== undefined) {
@@ -66009,13 +66033,6 @@ class SheetViewPlugin extends UIPlugin {
66009
66033
  case "ACTIVATE_SHEET":
66010
66034
  this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
66011
66035
  break;
66012
- case "UNFREEZE_ROWS":
66013
- case "UNFREEZE_COLUMNS":
66014
- case "FREEZE_COLUMNS":
66015
- case "FREEZE_ROWS":
66016
- case "UNFREEZE_COLUMNS_ROWS":
66017
- this.resetViewports(this.getters.getActiveSheetId());
66018
- break;
66019
66036
  case "DELETE_SHEET":
66020
66037
  this.sheetsWithDirtyViewports.delete(cmd.sheetId);
66021
66038
  break;
@@ -67195,7 +67212,7 @@ class AggregateStatisticsStore extends SpreadsheetStore {
67195
67212
  }
67196
67213
  handle(cmd) {
67197
67214
  if (invalidateEvaluationCommands.has(cmd.type) ||
67198
- (cmd.type === "UPDATE_CELL" && "content" in cmd)) {
67215
+ (cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd))) {
67199
67216
  this.isDirty = true;
67200
67217
  }
67201
67218
  switch (cmd.type) {
@@ -73777,6 +73794,6 @@ exports.tokenColors = tokenColors;
73777
73794
  exports.tokenize = tokenize;
73778
73795
 
73779
73796
 
73780
- __info__.version = "18.0.25";
73781
- __info__.date = "2025-04-25T08:08:43.377Z";
73782
- __info__.hash = "24aac2c";
73797
+ __info__.version = "18.0.26";
73798
+ __info__.date = "2025-05-02T12:30:31.966Z";
73799
+ __info__.hash = "5bdf504";
@@ -2688,7 +2688,8 @@ declare const enum CommandResult {
2688
2688
  EmptyName = "EmptyName",
2689
2689
  ValueCellIsInvalidFormula = "ValueCellIsInvalidFormula",
2690
2690
  InvalidDefinition = "InvalidDefinition",
2691
- InvalidColor = "InvalidColor"
2691
+ InvalidColor = "InvalidColor",
2692
+ InvalidPivotDataSet = "InvalidPivotDataSet"
2692
2693
  }
2693
2694
  interface CommandHandler<T> {
2694
2695
  allowDispatch(command: T): CommandResult | CommandResult[];
@@ -8275,6 +8276,7 @@ declare class ChartJsComponent extends Component<Props$M, SpreadsheetChildEnv> {
8275
8276
  private canvas;
8276
8277
  private chart?;
8277
8278
  private currentRuntime;
8279
+ private currentDevicePixelRatio;
8278
8280
  get background(): string;
8279
8281
  get canvasStyle(): string;
8280
8282
  get chartRuntime(): ChartJSRuntime;
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * This file is generated by o-spreadsheet build tools. Do not edit it.
4
4
  * @see https://github.com/odoo/o-spreadsheet
5
- * @version 18.0.25
6
- * @date 2025-04-25T08:08:43.377Z
7
- * @hash 24aac2c
5
+ * @version 18.0.26
6
+ * @date 2025-05-02T12:30:31.966Z
7
+ * @hash 5bdf504
8
8
  */
9
9
 
10
10
  import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, useState, onPatched, onWillPatch, onWillUpdateProps, useExternalListener, onWillStart, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
@@ -3591,6 +3591,7 @@ var CommandResult;
3591
3591
  CommandResult["ValueCellIsInvalidFormula"] = "ValueCellIsInvalidFormula";
3592
3592
  CommandResult["InvalidDefinition"] = "InvalidDefinition";
3593
3593
  CommandResult["InvalidColor"] = "InvalidColor";
3594
+ CommandResult["InvalidPivotDataSet"] = "InvalidPivotDataSet";
3594
3595
  })(CommandResult || (CommandResult = {}));
3595
3596
 
3596
3597
  const DEFAULT_LOCALES = [
@@ -16915,6 +16916,7 @@ class ChartJsComponent extends Component {
16915
16916
  canvas = useRef("graphContainer");
16916
16917
  chart;
16917
16918
  currentRuntime;
16919
+ currentDevicePixelRatio = window.devicePixelRatio;
16918
16920
  get background() {
16919
16921
  return this.chartRuntime.background;
16920
16922
  }
@@ -16948,11 +16950,11 @@ class ChartJsComponent extends Component {
16948
16950
  }
16949
16951
  this.currentRuntime = runtime;
16950
16952
  }
16953
+ else if (this.currentDevicePixelRatio !== window.devicePixelRatio) {
16954
+ this.currentDevicePixelRatio = window.devicePixelRatio;
16955
+ this.updateChartJs(deepCopy(this.currentRuntime));
16956
+ }
16951
16957
  });
16952
- useEffect(() => {
16953
- this.currentRuntime = this.chartRuntime;
16954
- this.updateChartJs(deepCopy(this.currentRuntime));
16955
- }, () => [window.devicePixelRatio]);
16956
16958
  }
16957
16959
  createChart(chartData) {
16958
16960
  const canvas = this.canvas.el;
@@ -29057,9 +29059,6 @@ class BarChart extends AbstractChart {
29057
29059
  };
29058
29060
  }
29059
29061
  getDefinitionForExcel() {
29060
- // Excel does not support aggregating labels
29061
- if (this.aggregated)
29062
- return undefined;
29063
29062
  const dataSets = this.dataSets
29064
29063
  .map((ds) => toExcelDataset(this.getters, ds))
29065
29064
  .filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
@@ -30300,9 +30299,6 @@ class LineChart extends AbstractChart {
30300
30299
  return new LineChart(definition, this.sheetId, this.getters);
30301
30300
  }
30302
30301
  getDefinitionForExcel() {
30303
- // Excel does not support aggregating labels
30304
- if (this.aggregated)
30305
- return undefined;
30306
30302
  const dataSets = this.dataSets
30307
30303
  .map((ds) => toExcelDataset(this.getters, ds))
30308
30304
  .filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
@@ -30413,9 +30409,6 @@ class PieChart extends AbstractChart {
30413
30409
  return new PieChart(definition, sheetId, this.getters);
30414
30410
  }
30415
30411
  getDefinitionForExcel() {
30416
- // Excel does not support aggregating labels
30417
- if (this.aggregated)
30418
- return undefined;
30419
30412
  const dataSets = this.dataSets
30420
30413
  .map((ds) => toExcelDataset(this.getters, ds))
30421
30414
  .filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
@@ -32634,18 +32627,28 @@ linkMenuRegistry.add("sheet", {
32634
32627
  function useInterval(callback, delay) {
32635
32628
  let intervalId;
32636
32629
  const { setInterval, clearInterval } = window;
32630
+ const pause = () => {
32631
+ clearInterval(intervalId);
32632
+ intervalId = undefined;
32633
+ };
32634
+ const safeCallback = () => {
32635
+ try {
32636
+ callback();
32637
+ }
32638
+ catch (e) {
32639
+ pause();
32640
+ throw e;
32641
+ }
32642
+ };
32637
32643
  useEffect(() => {
32638
- intervalId = setInterval(callback, delay);
32644
+ intervalId = setInterval(safeCallback, delay);
32639
32645
  return () => clearInterval(intervalId);
32640
32646
  }, () => [delay]);
32641
32647
  return {
32642
- pause: () => {
32643
- clearInterval(intervalId);
32644
- intervalId = undefined;
32645
- },
32648
+ pause,
32646
32649
  resume: () => {
32647
32650
  if (intervalId === undefined) {
32648
- intervalId = setInterval(callback, delay);
32651
+ intervalId = setInterval(safeCallback, delay);
32649
32652
  }
32650
32653
  },
32651
32654
  };
@@ -48365,7 +48368,7 @@ css /* scss */ `
48365
48368
  position: absolute;
48366
48369
  top: 0;
48367
48370
  left: ${HEADER_WIDTH}px;
48368
- right: 0;
48371
+ right: ${SCROLLBAR_WIDTH}px;
48369
48372
  height: ${HEADER_HEIGHT}px;
48370
48373
  &.o-dragging {
48371
48374
  cursor: grabbing;
@@ -48531,9 +48534,8 @@ css /* scss */ `
48531
48534
  position: absolute;
48532
48535
  top: ${HEADER_HEIGHT}px;
48533
48536
  left: 0;
48534
- right: 0;
48537
+ bottom: ${SCROLLBAR_WIDTH}px;
48535
48538
  width: ${HEADER_WIDTH}px;
48536
- height: calc(100% - ${HEADER_HEIGHT + SCROLLBAR_WIDTH}px);
48537
48539
  &.o-dragging {
48538
48540
  cursor: grabbing;
48539
48541
  }
@@ -56618,6 +56620,15 @@ function adaptPivotRange(range, applyChange) {
56618
56620
  }
56619
56621
  }
56620
56622
  class SpreadsheetPivotCorePlugin extends CorePlugin {
56623
+ allowDispatch(cmd) {
56624
+ switch (cmd.type) {
56625
+ case "ADD_PIVOT":
56626
+ case "UPDATE_PIVOT":
56627
+ const definition = cmd.pivot;
56628
+ return this.checkDataSetValidity(definition);
56629
+ }
56630
+ return "Success" /* CommandResult.Success */;
56631
+ }
56621
56632
  adaptRanges(applyChange) {
56622
56633
  for (const pivotId of this.getters.getPivotIds()) {
56623
56634
  const definition = this.getters.getPivotCoreDefinition(pivotId);
@@ -56636,6 +56647,16 @@ class SpreadsheetPivotCorePlugin extends CorePlugin {
56636
56647
  }
56637
56648
  }
56638
56649
  }
56650
+ checkDataSetValidity(definition) {
56651
+ if (definition.type === "SPREADSHEET" && definition.dataSet) {
56652
+ const { zone, sheetId } = definition.dataSet;
56653
+ if (!sheetId || !this.getters.tryGetSheet(sheetId) || !zone || !isZoneValid(zone)) {
56654
+ return "InvalidDataSet" /* CommandResult.InvalidDataSet */;
56655
+ }
56656
+ return this.getters.checkZonesExistInSheet(sheetId, [zone]);
56657
+ }
56658
+ return "Success" /* CommandResult.Success */;
56659
+ }
56639
56660
  }
56640
56661
 
56641
56662
  class TableStylePlugin extends CorePlugin {
@@ -59473,7 +59494,7 @@ class DynamicTablesPlugin extends UIPlugin {
59473
59494
  tables = {};
59474
59495
  handle(cmd) {
59475
59496
  if (invalidateEvaluationCommands.has(cmd.type) ||
59476
- (cmd.type === "UPDATE_CELL" && "content" in cmd) ||
59497
+ (cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
59477
59498
  cmd.type === "EVALUATE_CELLS") {
59478
59499
  this.tables = {};
59479
59500
  return;
@@ -63277,7 +63298,7 @@ class TableComputedStylePlugin extends UIPlugin {
63277
63298
  tableStyles = {};
63278
63299
  handle(cmd) {
63279
63300
  if (invalidateEvaluationCommands.has(cmd.type) ||
63280
- (cmd.type === "UPDATE_CELL" && "content" in cmd) ||
63301
+ (cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
63281
63302
  cmd.type === "EVALUATE_CELLS") {
63282
63303
  this.tableStyles = {};
63283
63304
  return;
@@ -65241,6 +65262,8 @@ class GridSelectionPlugin extends UIPlugin {
65241
65262
  });
65242
65263
  this.selectCell(col, row);
65243
65264
  }
65265
+ const { col, row } = this.gridSelection.anchor.cell;
65266
+ this.moveClient({ sheetId: this.activeSheet.id, col, row });
65244
65267
  }
65245
65268
  /**
65246
65269
  * Ensure selections are not outside sheet boundaries.
@@ -65973,8 +65996,11 @@ class SheetViewPlugin extends UIPlugin {
65973
65996
  case "REMOVE_TABLE":
65974
65997
  case "UPDATE_TABLE":
65975
65998
  case "UPDATE_FILTER":
65976
- this.sheetsWithDirtyViewports.add(cmd.sheetId);
65977
- break;
65999
+ case "UNFREEZE_ROWS":
66000
+ case "UNFREEZE_COLUMNS":
66001
+ case "FREEZE_COLUMNS":
66002
+ case "FREEZE_ROWS":
66003
+ case "UNFREEZE_COLUMNS_ROWS":
65978
66004
  case "REMOVE_COLUMNS_ROWS":
65979
66005
  case "RESIZE_COLUMNS_ROWS":
65980
66006
  case "HIDE_COLUMNS_ROWS":
@@ -65987,11 +66013,9 @@ class SheetViewPlugin extends UIPlugin {
65987
66013
  case "FOLD_HEADER_GROUPS_IN_ZONE":
65988
66014
  case "UNFOLD_HEADER_GROUPS_IN_ZONE":
65989
66015
  case "UNFOLD_ALL_HEADER_GROUPS":
65990
- case "FOLD_ALL_HEADER_GROUPS": {
65991
- const sheetId = "sheetId" in cmd ? cmd.sheetId : this.getters.getActiveSheetId();
65992
- this.sheetsWithDirtyViewports.add(sheetId);
66016
+ case "FOLD_ALL_HEADER_GROUPS":
66017
+ this.sheetsWithDirtyViewports.add(cmd.sheetId);
65993
66018
  break;
65994
- }
65995
66019
  case "UPDATE_CELL":
65996
66020
  // update cell content or format can change hidden rows because of data filters
65997
66021
  if ("content" in cmd || "format" in cmd || cmd.style?.fontSize !== undefined) {
@@ -66007,13 +66031,6 @@ class SheetViewPlugin extends UIPlugin {
66007
66031
  case "ACTIVATE_SHEET":
66008
66032
  this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
66009
66033
  break;
66010
- case "UNFREEZE_ROWS":
66011
- case "UNFREEZE_COLUMNS":
66012
- case "FREEZE_COLUMNS":
66013
- case "FREEZE_ROWS":
66014
- case "UNFREEZE_COLUMNS_ROWS":
66015
- this.resetViewports(this.getters.getActiveSheetId());
66016
- break;
66017
66034
  case "DELETE_SHEET":
66018
66035
  this.sheetsWithDirtyViewports.delete(cmd.sheetId);
66019
66036
  break;
@@ -67193,7 +67210,7 @@ class AggregateStatisticsStore extends SpreadsheetStore {
67193
67210
  }
67194
67211
  handle(cmd) {
67195
67212
  if (invalidateEvaluationCommands.has(cmd.type) ||
67196
- (cmd.type === "UPDATE_CELL" && "content" in cmd)) {
67213
+ (cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd))) {
67197
67214
  this.isDirty = true;
67198
67215
  }
67199
67216
  switch (cmd.type) {
@@ -73732,6 +73749,6 @@ const constants = {
73732
73749
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
73733
73750
 
73734
73751
 
73735
- __info__.version = "18.0.25";
73736
- __info__.date = "2025-04-25T08:08:43.377Z";
73737
- __info__.hash = "24aac2c";
73752
+ __info__.version = "18.0.26";
73753
+ __info__.date = "2025-05-02T12:30:31.966Z";
73754
+ __info__.hash = "5bdf504";