@odoo/o-spreadsheet 18.2.8 → 18.2.10
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.
- package/dist/o-spreadsheet.cjs.js +98 -58
- package/dist/o-spreadsheet.d.ts +5 -2
- package/dist/o-spreadsheet.esm.js +98 -58
- package/dist/o-spreadsheet.iife.js +98 -58
- package/dist/o-spreadsheet.iife.min.js +203 -204
- package/dist/o_spreadsheet.xml +6 -7
- package/package.json +2 -2
|
@@ -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.2.
|
|
6
|
-
* @date 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.2.10
|
|
6
|
+
* @date 2025-05-02T12:34:39.632Z
|
|
7
|
+
* @hash e8ff3fc
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -3770,6 +3770,7 @@
|
|
|
3770
3770
|
CommandResult["ValueCellIsInvalidFormula"] = "ValueCellIsInvalidFormula";
|
|
3771
3771
|
CommandResult["InvalidDefinition"] = "InvalidDefinition";
|
|
3772
3772
|
CommandResult["InvalidColor"] = "InvalidColor";
|
|
3773
|
+
CommandResult["InvalidPivotDataSet"] = "InvalidPivotDataSet";
|
|
3773
3774
|
})(exports.CommandResult || (exports.CommandResult = {}));
|
|
3774
3775
|
|
|
3775
3776
|
const DEFAULT_LOCALES = [
|
|
@@ -3842,11 +3843,13 @@
|
|
|
3842
3843
|
NullError: "#NULL!",
|
|
3843
3844
|
};
|
|
3844
3845
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3845
|
-
class EvaluationError
|
|
3846
|
+
class EvaluationError {
|
|
3847
|
+
message;
|
|
3846
3848
|
value;
|
|
3847
3849
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3848
|
-
|
|
3850
|
+
this.message = message;
|
|
3849
3851
|
this.value = value;
|
|
3852
|
+
this.message = message.toString();
|
|
3850
3853
|
}
|
|
3851
3854
|
}
|
|
3852
3855
|
class BadExpressionError extends EvaluationError {
|
|
@@ -10170,7 +10173,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10170
10173
|
const yMin = chart.chartArea.top;
|
|
10171
10174
|
const textsPositions = {};
|
|
10172
10175
|
for (const dataset of chart._metasets) {
|
|
10173
|
-
if (isTrendLineAxis(dataset.
|
|
10176
|
+
if (isTrendLineAxis(dataset.xAxisID) || dataset.hidden) {
|
|
10174
10177
|
continue;
|
|
10175
10178
|
}
|
|
10176
10179
|
for (let i = 0; i < dataset._parsed.length; i++) {
|
|
@@ -10213,7 +10216,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10213
10216
|
const xMin = chart.chartArea.left;
|
|
10214
10217
|
const textsPositions = {};
|
|
10215
10218
|
for (const dataset of chart._metasets) {
|
|
10216
|
-
if (isTrendLineAxis(dataset.
|
|
10219
|
+
if (isTrendLineAxis(dataset.xAxisID)) {
|
|
10217
10220
|
return; // ignore trend lines
|
|
10218
10221
|
}
|
|
10219
10222
|
for (let i = 0; i < dataset._parsed.length; i++) {
|
|
@@ -10338,6 +10341,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10338
10341
|
canvas = owl.useRef("graphContainer");
|
|
10339
10342
|
chart;
|
|
10340
10343
|
currentRuntime;
|
|
10344
|
+
currentDevicePixelRatio = window.devicePixelRatio;
|
|
10341
10345
|
get background() {
|
|
10342
10346
|
return this.chartRuntime.background;
|
|
10343
10347
|
}
|
|
@@ -10371,6 +10375,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10371
10375
|
}
|
|
10372
10376
|
this.currentRuntime = runtime;
|
|
10373
10377
|
}
|
|
10378
|
+
else if (this.currentDevicePixelRatio !== window.devicePixelRatio) {
|
|
10379
|
+
this.currentDevicePixelRatio = window.devicePixelRatio;
|
|
10380
|
+
this.updateChartJs(deepCopy(this.currentRuntime.chartJsConfig));
|
|
10381
|
+
}
|
|
10374
10382
|
});
|
|
10375
10383
|
}
|
|
10376
10384
|
createChart(chartData) {
|
|
@@ -10626,9 +10634,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10626
10634
|
};
|
|
10627
10635
|
function drawScoreChart(structure, canvas) {
|
|
10628
10636
|
const ctx = canvas.getContext("2d");
|
|
10629
|
-
|
|
10630
|
-
|
|
10631
|
-
canvas.height = structure.canvas.height;
|
|
10637
|
+
const dpr = window.devicePixelRatio || 1;
|
|
10638
|
+
canvas.width = dpr * structure.canvas.width;
|
|
10639
|
+
canvas.height = dpr * structure.canvas.height;
|
|
10640
|
+
ctx.scale(dpr, dpr);
|
|
10641
|
+
const availableWidth = structure.canvas.width - CHART_PADDING$1 * 2;
|
|
10632
10642
|
ctx.fillStyle = structure.canvas.backgroundColor;
|
|
10633
10643
|
ctx.fillRect(0, 0, structure.canvas.width, structure.canvas.height);
|
|
10634
10644
|
if (structure.title) {
|
|
@@ -10991,7 +11001,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10991
11001
|
owl.useEffect(this.createChart.bind(this), () => {
|
|
10992
11002
|
const canvas = this.canvas.el;
|
|
10993
11003
|
const rect = canvas.getBoundingClientRect();
|
|
10994
|
-
return [rect.width, rect.height, this.runtime, this.canvas.el];
|
|
11004
|
+
return [rect.width, rect.height, this.runtime, this.canvas.el, window.devicePixelRatio];
|
|
10995
11005
|
});
|
|
10996
11006
|
}
|
|
10997
11007
|
createChart() {
|
|
@@ -13751,7 +13761,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
13751
13761
|
}
|
|
13752
13762
|
}
|
|
13753
13763
|
if (!found) {
|
|
13754
|
-
|
|
13764
|
+
return new NotAvailableError(_t("Value not found in the given data."));
|
|
13755
13765
|
}
|
|
13756
13766
|
return rank;
|
|
13757
13767
|
},
|
|
@@ -15491,7 +15501,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
15491
15501
|
result.push(row.data);
|
|
15492
15502
|
}
|
|
15493
15503
|
if (!result.length)
|
|
15494
|
-
|
|
15504
|
+
return new EvaluationError(_t("No unique values found"));
|
|
15495
15505
|
return _byColumn ? result : transposeMatrix(result);
|
|
15496
15506
|
},
|
|
15497
15507
|
isExported: true,
|
|
@@ -19270,7 +19280,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
19270
19280
|
}
|
|
19271
19281
|
const _cellReference = cellReference?.value;
|
|
19272
19282
|
if (!_cellReference) {
|
|
19273
|
-
|
|
19283
|
+
return new EvaluationError("In this context, the function OFFSET needs to have a cell or range in parameter.");
|
|
19274
19284
|
}
|
|
19275
19285
|
const zone = toZone(_cellReference);
|
|
19276
19286
|
let offsetHeight = zone.bottom - zone.top + 1;
|
|
@@ -22580,9 +22590,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
22580
22590
|
const GAUGE_TITLE_SECTION_HEIGHT = 25;
|
|
22581
22591
|
function drawGaugeChart(canvas, runtime) {
|
|
22582
22592
|
const canvasBoundingRect = canvas.getBoundingClientRect();
|
|
22583
|
-
|
|
22584
|
-
canvas.
|
|
22593
|
+
const dpr = window.devicePixelRatio || 1;
|
|
22594
|
+
canvas.width = dpr * canvasBoundingRect.width;
|
|
22595
|
+
canvas.height = dpr * canvasBoundingRect.height;
|
|
22585
22596
|
const ctx = canvas.getContext("2d");
|
|
22597
|
+
ctx.scale(dpr, dpr);
|
|
22586
22598
|
const config = getGaugeRenderingConfig(canvasBoundingRect, runtime, ctx);
|
|
22587
22599
|
drawBackground(ctx, config);
|
|
22588
22600
|
drawGauge(ctx, config);
|
|
@@ -22917,7 +22929,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
22917
22929
|
owl.useEffect(() => drawGaugeChart(this.canvas.el, this.runtime), () => {
|
|
22918
22930
|
const canvas = this.canvas.el;
|
|
22919
22931
|
const rect = canvas.getBoundingClientRect();
|
|
22920
|
-
return [rect.width, rect.height, this.runtime, this.canvas.el];
|
|
22932
|
+
return [rect.width, rect.height, this.runtime, this.canvas.el, window.devicePixelRatio];
|
|
22921
22933
|
});
|
|
22922
22934
|
}
|
|
22923
22935
|
}
|
|
@@ -29580,7 +29592,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29580
29592
|
};
|
|
29581
29593
|
scales[MOVING_AVERAGE_TREND_LINE_XAXIS_ID] = {
|
|
29582
29594
|
...scales.x,
|
|
29583
|
-
offset:
|
|
29595
|
+
offset: true,
|
|
29584
29596
|
display: false,
|
|
29585
29597
|
};
|
|
29586
29598
|
}
|
|
@@ -30300,9 +30312,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30300
30312
|
};
|
|
30301
30313
|
}
|
|
30302
30314
|
getDefinitionForExcel() {
|
|
30303
|
-
// Excel does not support aggregating labels
|
|
30304
|
-
if (this.aggregated)
|
|
30305
|
-
return undefined;
|
|
30306
30315
|
const dataSets = this.dataSets
|
|
30307
30316
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
30308
30317
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -31017,9 +31026,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31017
31026
|
return new LineChart(definition, this.sheetId, this.getters);
|
|
31018
31027
|
}
|
|
31019
31028
|
getDefinitionForExcel() {
|
|
31020
|
-
// Excel does not support aggregating labels
|
|
31021
|
-
if (this.aggregated)
|
|
31022
|
-
return undefined;
|
|
31023
31029
|
const dataSets = this.dataSets
|
|
31024
31030
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
31025
31031
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -31156,9 +31162,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31156
31162
|
return new PieChart(definition, sheetId, this.getters);
|
|
31157
31163
|
}
|
|
31158
31164
|
getDefinitionForExcel() {
|
|
31159
|
-
// Excel does not support aggregating labels
|
|
31160
|
-
if (this.aggregated)
|
|
31161
|
-
return undefined;
|
|
31162
31165
|
const dataSets = this.dataSets
|
|
31163
31166
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
31164
31167
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -33657,18 +33660,28 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
33657
33660
|
function useInterval(callback, delay) {
|
|
33658
33661
|
let intervalId;
|
|
33659
33662
|
const { setInterval, clearInterval } = window;
|
|
33663
|
+
const pause = () => {
|
|
33664
|
+
clearInterval(intervalId);
|
|
33665
|
+
intervalId = undefined;
|
|
33666
|
+
};
|
|
33667
|
+
const safeCallback = () => {
|
|
33668
|
+
try {
|
|
33669
|
+
callback();
|
|
33670
|
+
}
|
|
33671
|
+
catch (e) {
|
|
33672
|
+
pause();
|
|
33673
|
+
throw e;
|
|
33674
|
+
}
|
|
33675
|
+
};
|
|
33660
33676
|
owl.useEffect(() => {
|
|
33661
|
-
intervalId = setInterval(
|
|
33677
|
+
intervalId = setInterval(safeCallback, delay);
|
|
33662
33678
|
return () => clearInterval(intervalId);
|
|
33663
33679
|
}, () => [delay]);
|
|
33664
33680
|
return {
|
|
33665
|
-
pause
|
|
33666
|
-
clearInterval(intervalId);
|
|
33667
|
-
intervalId = undefined;
|
|
33668
|
-
},
|
|
33681
|
+
pause,
|
|
33669
33682
|
resume: () => {
|
|
33670
33683
|
if (intervalId === undefined) {
|
|
33671
|
-
intervalId = setInterval(
|
|
33684
|
+
intervalId = setInterval(safeCallback, delay);
|
|
33672
33685
|
}
|
|
33673
33686
|
},
|
|
33674
33687
|
};
|
|
@@ -38449,8 +38462,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38449
38462
|
}
|
|
38450
38463
|
removeInput(rangeId) {
|
|
38451
38464
|
const index = this.store.selectionInputs.findIndex((range) => range.id === rangeId);
|
|
38452
|
-
this.
|
|
38453
|
-
|
|
38465
|
+
if (this.ranges.find((range) => range.id === rangeId)?.xc) {
|
|
38466
|
+
this.props.onSelectionRemoved?.(index);
|
|
38467
|
+
this.props.onSelectionConfirmed?.();
|
|
38468
|
+
}
|
|
38469
|
+
this.store.removeRange(rangeId);
|
|
38454
38470
|
}
|
|
38455
38471
|
onInputChanged(rangeId, ev) {
|
|
38456
38472
|
const target = ev.target;
|
|
@@ -39116,7 +39132,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
39116
39132
|
}
|
|
39117
39133
|
setHexColor(ev) {
|
|
39118
39134
|
// only support HEX code input
|
|
39119
|
-
const val = ev.target.value.slice(0, 7);
|
|
39135
|
+
const val = ev.target.value.replace("##", "#").slice(0, 7);
|
|
39120
39136
|
this.state.customHexColor = val;
|
|
39121
39137
|
if (!isColorValid(val)) ;
|
|
39122
39138
|
else {
|
|
@@ -50850,7 +50866,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50850
50866
|
position: absolute;
|
|
50851
50867
|
top: 0;
|
|
50852
50868
|
left: ${HEADER_WIDTH}px;
|
|
50853
|
-
right:
|
|
50869
|
+
right: ${SCROLLBAR_WIDTH}px;
|
|
50854
50870
|
height: ${HEADER_HEIGHT}px;
|
|
50855
50871
|
width: calc(100% - ${HEADER_WIDTH + SCROLLBAR_WIDTH}px);
|
|
50856
50872
|
&.o-dragging {
|
|
@@ -51043,9 +51059,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51043
51059
|
position: absolute;
|
|
51044
51060
|
top: ${HEADER_HEIGHT}px;
|
|
51045
51061
|
left: 0;
|
|
51046
|
-
|
|
51062
|
+
bottom: ${SCROLLBAR_WIDTH}px;
|
|
51047
51063
|
width: ${HEADER_WIDTH}px;
|
|
51048
|
-
height: calc(100% - ${HEADER_HEIGHT + SCROLLBAR_WIDTH}px);
|
|
51049
51064
|
&.o-dragging {
|
|
51050
51065
|
cursor: grabbing;
|
|
51051
51066
|
}
|
|
@@ -59093,6 +59108,15 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59093
59108
|
}
|
|
59094
59109
|
}
|
|
59095
59110
|
class SpreadsheetPivotCorePlugin extends CorePlugin {
|
|
59111
|
+
allowDispatch(cmd) {
|
|
59112
|
+
switch (cmd.type) {
|
|
59113
|
+
case "ADD_PIVOT":
|
|
59114
|
+
case "UPDATE_PIVOT":
|
|
59115
|
+
const definition = cmd.pivot;
|
|
59116
|
+
return this.checkDataSetValidity(definition);
|
|
59117
|
+
}
|
|
59118
|
+
return "Success" /* CommandResult.Success */;
|
|
59119
|
+
}
|
|
59096
59120
|
adaptRanges(applyChange) {
|
|
59097
59121
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
59098
59122
|
const definition = this.getters.getPivotCoreDefinition(pivotId);
|
|
@@ -59111,6 +59135,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59111
59135
|
}
|
|
59112
59136
|
}
|
|
59113
59137
|
}
|
|
59138
|
+
checkDataSetValidity(definition) {
|
|
59139
|
+
if (definition.type === "SPREADSHEET" && definition.dataSet) {
|
|
59140
|
+
const { zone, sheetId } = definition.dataSet;
|
|
59141
|
+
if (!sheetId || !this.getters.tryGetSheet(sheetId) || !zone || !isZoneValid(zone)) {
|
|
59142
|
+
return "InvalidDataSet" /* CommandResult.InvalidDataSet */;
|
|
59143
|
+
}
|
|
59144
|
+
return this.getters.checkZonesExistInSheet(sheetId, [zone]);
|
|
59145
|
+
}
|
|
59146
|
+
return "Success" /* CommandResult.Success */;
|
|
59147
|
+
}
|
|
59114
59148
|
}
|
|
59115
59149
|
|
|
59116
59150
|
class TableStylePlugin extends CorePlugin {
|
|
@@ -61901,7 +61935,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61901
61935
|
tables = {};
|
|
61902
61936
|
handle(cmd) {
|
|
61903
61937
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
61904
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd) ||
|
|
61938
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
|
|
61905
61939
|
cmd.type === "EVALUATE_CELLS") {
|
|
61906
61940
|
this.tables = {};
|
|
61907
61941
|
return;
|
|
@@ -62334,6 +62368,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
62334
62368
|
}
|
|
62335
62369
|
return values;
|
|
62336
62370
|
}
|
|
62371
|
+
else if (rowDomain.length === this.definition.rows.length &&
|
|
62372
|
+
colDomain.length &&
|
|
62373
|
+
colDomain.length < this.definition.columns.length) {
|
|
62374
|
+
const colSubTree = this.getSubTreeMatchingDomain(table.getColTree(), colDomain);
|
|
62375
|
+
const domains = this.treeToLeafDomains(colSubTree, colDomain);
|
|
62376
|
+
for (const domain of domains) {
|
|
62377
|
+
values.push(this._getPivotCellValueAndFormat(measure.id, rowDomain.concat(domain)));
|
|
62378
|
+
}
|
|
62379
|
+
return values;
|
|
62380
|
+
}
|
|
62337
62381
|
else {
|
|
62338
62382
|
const tree = table.getRowTree();
|
|
62339
62383
|
const subTree = this.getSubTreeMatchingDomain(tree, rowDomain);
|
|
@@ -65763,7 +65807,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65763
65807
|
tableStyles = {};
|
|
65764
65808
|
handle(cmd) {
|
|
65765
65809
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
65766
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd) ||
|
|
65810
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
|
|
65767
65811
|
cmd.type === "EVALUATE_CELLS") {
|
|
65768
65812
|
this.tableStyles = {};
|
|
65769
65813
|
return;
|
|
@@ -67724,6 +67768,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
67724
67768
|
});
|
|
67725
67769
|
this.selectCell(col, row);
|
|
67726
67770
|
}
|
|
67771
|
+
const { col, row } = this.gridSelection.anchor.cell;
|
|
67772
|
+
this.moveClient({ sheetId: this.activeSheet.id, col, row });
|
|
67727
67773
|
}
|
|
67728
67774
|
/**
|
|
67729
67775
|
* Ensure selections are not outside sheet boundaries.
|
|
@@ -68439,8 +68485,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
68439
68485
|
case "REMOVE_TABLE":
|
|
68440
68486
|
case "UPDATE_TABLE":
|
|
68441
68487
|
case "UPDATE_FILTER":
|
|
68442
|
-
|
|
68443
|
-
|
|
68488
|
+
case "UNFREEZE_ROWS":
|
|
68489
|
+
case "UNFREEZE_COLUMNS":
|
|
68490
|
+
case "FREEZE_COLUMNS":
|
|
68491
|
+
case "FREEZE_ROWS":
|
|
68492
|
+
case "UNFREEZE_COLUMNS_ROWS":
|
|
68444
68493
|
case "REMOVE_COLUMNS_ROWS":
|
|
68445
68494
|
case "RESIZE_COLUMNS_ROWS":
|
|
68446
68495
|
case "HIDE_COLUMNS_ROWS":
|
|
@@ -68453,11 +68502,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
68453
68502
|
case "FOLD_HEADER_GROUPS_IN_ZONE":
|
|
68454
68503
|
case "UNFOLD_HEADER_GROUPS_IN_ZONE":
|
|
68455
68504
|
case "UNFOLD_ALL_HEADER_GROUPS":
|
|
68456
|
-
case "FOLD_ALL_HEADER_GROUPS":
|
|
68457
|
-
|
|
68458
|
-
this.sheetsWithDirtyViewports.add(sheetId);
|
|
68505
|
+
case "FOLD_ALL_HEADER_GROUPS":
|
|
68506
|
+
this.sheetsWithDirtyViewports.add(cmd.sheetId);
|
|
68459
68507
|
break;
|
|
68460
|
-
}
|
|
68461
68508
|
case "UPDATE_CELL":
|
|
68462
68509
|
// update cell content or format can change hidden rows because of data filters
|
|
68463
68510
|
if ("content" in cmd || "format" in cmd || cmd.style?.fontSize !== undefined) {
|
|
@@ -68473,13 +68520,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
68473
68520
|
case "ACTIVATE_SHEET":
|
|
68474
68521
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
68475
68522
|
break;
|
|
68476
|
-
case "UNFREEZE_ROWS":
|
|
68477
|
-
case "UNFREEZE_COLUMNS":
|
|
68478
|
-
case "FREEZE_COLUMNS":
|
|
68479
|
-
case "FREEZE_ROWS":
|
|
68480
|
-
case "UNFREEZE_COLUMNS_ROWS":
|
|
68481
|
-
this.resetViewports(this.getters.getActiveSheetId());
|
|
68482
|
-
break;
|
|
68483
68523
|
case "SCROLL_TO_CELL":
|
|
68484
68524
|
this.refreshViewport(this.getters.getActiveSheetId(), { col: cmd.col, row: cmd.row });
|
|
68485
68525
|
break;
|
|
@@ -69647,7 +69687,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
69647
69687
|
}
|
|
69648
69688
|
handle(cmd) {
|
|
69649
69689
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
69650
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd)) {
|
|
69690
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd))) {
|
|
69651
69691
|
this.isDirty = true;
|
|
69652
69692
|
}
|
|
69653
69693
|
switch (cmd.type) {
|
|
@@ -76229,9 +76269,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76229
76269
|
exports.tokenize = tokenize;
|
|
76230
76270
|
|
|
76231
76271
|
|
|
76232
|
-
__info__.version = "18.2.
|
|
76233
|
-
__info__.date = "2025-
|
|
76234
|
-
__info__.hash = "
|
|
76272
|
+
__info__.version = "18.2.10";
|
|
76273
|
+
__info__.date = "2025-05-02T12:34:39.632Z";
|
|
76274
|
+
__info__.hash = "e8ff3fc";
|
|
76235
76275
|
|
|
76236
76276
|
|
|
76237
76277
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|