@odoo/o-spreadsheet 18.1.16 → 18.1.18
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 +93 -56
- package/dist/o-spreadsheet.d.ts +5 -2
- package/dist/o-spreadsheet.esm.js +93 -56
- package/dist/o-spreadsheet.iife.js +93 -56
- package/dist/o-spreadsheet.iife.min.js +9 -10
- package/dist/o_spreadsheet.xml +62 -55
- package/package.json +1 -1
|
@@ -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.1.
|
|
6
|
-
* @date 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.1.18
|
|
6
|
+
* @date 2025-05-02T12:30:47.822Z
|
|
7
|
+
* @hash 29c21c6
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -3761,6 +3761,7 @@
|
|
|
3761
3761
|
CommandResult["ValueCellIsInvalidFormula"] = "ValueCellIsInvalidFormula";
|
|
3762
3762
|
CommandResult["InvalidDefinition"] = "InvalidDefinition";
|
|
3763
3763
|
CommandResult["InvalidColor"] = "InvalidColor";
|
|
3764
|
+
CommandResult["InvalidPivotDataSet"] = "InvalidPivotDataSet";
|
|
3764
3765
|
})(exports.CommandResult || (exports.CommandResult = {}));
|
|
3765
3766
|
|
|
3766
3767
|
const DEFAULT_LOCALES = [
|
|
@@ -3833,11 +3834,13 @@
|
|
|
3833
3834
|
NullError: "#NULL!",
|
|
3834
3835
|
};
|
|
3835
3836
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3836
|
-
class EvaluationError
|
|
3837
|
+
class EvaluationError {
|
|
3838
|
+
message;
|
|
3837
3839
|
value;
|
|
3838
3840
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3839
|
-
|
|
3841
|
+
this.message = message;
|
|
3840
3842
|
this.value = value;
|
|
3843
|
+
this.message = message.toString();
|
|
3841
3844
|
}
|
|
3842
3845
|
}
|
|
3843
3846
|
class BadExpressionError extends EvaluationError {
|
|
@@ -10006,7 +10009,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10006
10009
|
const yMin = chart.chartArea.top;
|
|
10007
10010
|
const textsPositions = {};
|
|
10008
10011
|
for (const dataset of chart._metasets) {
|
|
10009
|
-
if (isTrendLineAxis(dataset.
|
|
10012
|
+
if (isTrendLineAxis(dataset.xAxisID) || dataset.hidden) {
|
|
10010
10013
|
continue;
|
|
10011
10014
|
}
|
|
10012
10015
|
for (let i = 0; i < dataset._parsed.length; i++) {
|
|
@@ -10049,7 +10052,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10049
10052
|
const xMin = chart.chartArea.left;
|
|
10050
10053
|
const textsPositions = {};
|
|
10051
10054
|
for (const dataset of chart._metasets) {
|
|
10052
|
-
if (isTrendLineAxis(dataset.
|
|
10055
|
+
if (isTrendLineAxis(dataset.xAxisID)) {
|
|
10053
10056
|
return; // ignore trend lines
|
|
10054
10057
|
}
|
|
10055
10058
|
for (let i = 0; i < dataset._parsed.length; i++) {
|
|
@@ -10165,6 +10168,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10165
10168
|
canvas = owl.useRef("graphContainer");
|
|
10166
10169
|
chart;
|
|
10167
10170
|
currentRuntime;
|
|
10171
|
+
currentDevicePixelRatio = window.devicePixelRatio;
|
|
10168
10172
|
get background() {
|
|
10169
10173
|
return this.chartRuntime.background;
|
|
10170
10174
|
}
|
|
@@ -10198,6 +10202,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10198
10202
|
}
|
|
10199
10203
|
this.currentRuntime = runtime;
|
|
10200
10204
|
}
|
|
10205
|
+
else if (this.currentDevicePixelRatio !== window.devicePixelRatio) {
|
|
10206
|
+
this.currentDevicePixelRatio = window.devicePixelRatio;
|
|
10207
|
+
this.updateChartJs(deepCopy(this.currentRuntime.chartJsConfig));
|
|
10208
|
+
}
|
|
10201
10209
|
});
|
|
10202
10210
|
}
|
|
10203
10211
|
createChart(chartData) {
|
|
@@ -10453,9 +10461,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10453
10461
|
};
|
|
10454
10462
|
function drawScoreChart(structure, canvas) {
|
|
10455
10463
|
const ctx = canvas.getContext("2d");
|
|
10456
|
-
|
|
10457
|
-
|
|
10458
|
-
canvas.height = structure.canvas.height;
|
|
10464
|
+
const dpr = window.devicePixelRatio || 1;
|
|
10465
|
+
canvas.width = dpr * structure.canvas.width;
|
|
10466
|
+
canvas.height = dpr * structure.canvas.height;
|
|
10467
|
+
ctx.scale(dpr, dpr);
|
|
10468
|
+
const availableWidth = structure.canvas.width - CHART_PADDING$1 * 2;
|
|
10459
10469
|
ctx.fillStyle = structure.canvas.backgroundColor;
|
|
10460
10470
|
ctx.fillRect(0, 0, structure.canvas.width, structure.canvas.height);
|
|
10461
10471
|
if (structure.title) {
|
|
@@ -10818,7 +10828,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10818
10828
|
owl.useEffect(this.createChart.bind(this), () => {
|
|
10819
10829
|
const canvas = this.canvas.el;
|
|
10820
10830
|
const rect = canvas.getBoundingClientRect();
|
|
10821
|
-
return [rect.width, rect.height, this.runtime, this.canvas.el];
|
|
10831
|
+
return [rect.width, rect.height, this.runtime, this.canvas.el, window.devicePixelRatio];
|
|
10822
10832
|
});
|
|
10823
10833
|
}
|
|
10824
10834
|
createChart() {
|
|
@@ -13578,7 +13588,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
13578
13588
|
}
|
|
13579
13589
|
}
|
|
13580
13590
|
if (!found) {
|
|
13581
|
-
|
|
13591
|
+
return new NotAvailableError(_t("Value not found in the given data."));
|
|
13582
13592
|
}
|
|
13583
13593
|
return rank;
|
|
13584
13594
|
},
|
|
@@ -15318,7 +15328,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
15318
15328
|
result.push(row.data);
|
|
15319
15329
|
}
|
|
15320
15330
|
if (!result.length)
|
|
15321
|
-
|
|
15331
|
+
return new EvaluationError(_t("No unique values found"));
|
|
15322
15332
|
return _byColumn ? result : transposeMatrix(result);
|
|
15323
15333
|
},
|
|
15324
15334
|
isExported: true,
|
|
@@ -19097,7 +19107,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
19097
19107
|
}
|
|
19098
19108
|
const _cellReference = cellReference?.value;
|
|
19099
19109
|
if (!_cellReference) {
|
|
19100
|
-
|
|
19110
|
+
return new EvaluationError("In this context, the function OFFSET needs to have a cell or range in parameter.");
|
|
19101
19111
|
}
|
|
19102
19112
|
const zone = toZone(_cellReference);
|
|
19103
19113
|
let offsetHeight = zone.bottom - zone.top + 1;
|
|
@@ -22407,9 +22417,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
22407
22417
|
const GAUGE_TITLE_SECTION_HEIGHT = 25;
|
|
22408
22418
|
function drawGaugeChart(canvas, runtime) {
|
|
22409
22419
|
const canvasBoundingRect = canvas.getBoundingClientRect();
|
|
22410
|
-
|
|
22411
|
-
canvas.
|
|
22420
|
+
const dpr = window.devicePixelRatio || 1;
|
|
22421
|
+
canvas.width = dpr * canvasBoundingRect.width;
|
|
22422
|
+
canvas.height = dpr * canvasBoundingRect.height;
|
|
22412
22423
|
const ctx = canvas.getContext("2d");
|
|
22424
|
+
ctx.scale(dpr, dpr);
|
|
22413
22425
|
const config = getGaugeRenderingConfig(canvasBoundingRect, runtime, ctx);
|
|
22414
22426
|
drawBackground(ctx, config);
|
|
22415
22427
|
drawGauge(ctx, config);
|
|
@@ -22744,7 +22756,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
22744
22756
|
owl.useEffect(() => drawGaugeChart(this.canvas.el, this.runtime), () => {
|
|
22745
22757
|
const canvas = this.canvas.el;
|
|
22746
22758
|
const rect = canvas.getBoundingClientRect();
|
|
22747
|
-
return [rect.width, rect.height, this.runtime, this.canvas.el];
|
|
22759
|
+
return [rect.width, rect.height, this.runtime, this.canvas.el, window.devicePixelRatio];
|
|
22748
22760
|
});
|
|
22749
22761
|
}
|
|
22750
22762
|
}
|
|
@@ -29556,7 +29568,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29556
29568
|
};
|
|
29557
29569
|
scales[MOVING_AVERAGE_TREND_LINE_XAXIS_ID] = {
|
|
29558
29570
|
...scales.x,
|
|
29559
|
-
offset:
|
|
29571
|
+
offset: true,
|
|
29560
29572
|
display: false,
|
|
29561
29573
|
};
|
|
29562
29574
|
}
|
|
@@ -30153,9 +30165,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30153
30165
|
};
|
|
30154
30166
|
}
|
|
30155
30167
|
getDefinitionForExcel() {
|
|
30156
|
-
// Excel does not support aggregating labels
|
|
30157
|
-
if (this.aggregated)
|
|
30158
|
-
return undefined;
|
|
30159
30168
|
const dataSets = this.dataSets
|
|
30160
30169
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
30161
30170
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -30836,9 +30845,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30836
30845
|
return new LineChart(definition, this.sheetId, this.getters);
|
|
30837
30846
|
}
|
|
30838
30847
|
getDefinitionForExcel() {
|
|
30839
|
-
// Excel does not support aggregating labels
|
|
30840
|
-
if (this.aggregated)
|
|
30841
|
-
return undefined;
|
|
30842
30848
|
const dataSets = this.dataSets
|
|
30843
30849
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
30844
30850
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -30975,9 +30981,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30975
30981
|
return new PieChart(definition, sheetId, this.getters);
|
|
30976
30982
|
}
|
|
30977
30983
|
getDefinitionForExcel() {
|
|
30978
|
-
// Excel does not support aggregating labels
|
|
30979
|
-
if (this.aggregated)
|
|
30980
|
-
return undefined;
|
|
30981
30984
|
const dataSets = this.dataSets
|
|
30982
30985
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
30983
30986
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -33453,18 +33456,28 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
33453
33456
|
function useInterval(callback, delay) {
|
|
33454
33457
|
let intervalId;
|
|
33455
33458
|
const { setInterval, clearInterval } = window;
|
|
33459
|
+
const pause = () => {
|
|
33460
|
+
clearInterval(intervalId);
|
|
33461
|
+
intervalId = undefined;
|
|
33462
|
+
};
|
|
33463
|
+
const safeCallback = () => {
|
|
33464
|
+
try {
|
|
33465
|
+
callback();
|
|
33466
|
+
}
|
|
33467
|
+
catch (e) {
|
|
33468
|
+
pause();
|
|
33469
|
+
throw e;
|
|
33470
|
+
}
|
|
33471
|
+
};
|
|
33456
33472
|
owl.useEffect(() => {
|
|
33457
|
-
intervalId = setInterval(
|
|
33473
|
+
intervalId = setInterval(safeCallback, delay);
|
|
33458
33474
|
return () => clearInterval(intervalId);
|
|
33459
33475
|
}, () => [delay]);
|
|
33460
33476
|
return {
|
|
33461
|
-
pause
|
|
33462
|
-
clearInterval(intervalId);
|
|
33463
|
-
intervalId = undefined;
|
|
33464
|
-
},
|
|
33477
|
+
pause,
|
|
33465
33478
|
resume: () => {
|
|
33466
33479
|
if (intervalId === undefined) {
|
|
33467
|
-
intervalId = setInterval(
|
|
33480
|
+
intervalId = setInterval(safeCallback, delay);
|
|
33468
33481
|
}
|
|
33469
33482
|
},
|
|
33470
33483
|
};
|
|
@@ -38560,7 +38573,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38560
38573
|
}
|
|
38561
38574
|
setHexColor(ev) {
|
|
38562
38575
|
// only support HEX code input
|
|
38563
|
-
const val = ev.target.value.slice(0, 7);
|
|
38576
|
+
const val = ev.target.value.replace("##", "#").slice(0, 7);
|
|
38564
38577
|
this.state.customHexColor = val;
|
|
38565
38578
|
if (!isColorValid(val)) ;
|
|
38566
38579
|
else {
|
|
@@ -50453,7 +50466,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50453
50466
|
position: absolute;
|
|
50454
50467
|
top: 0;
|
|
50455
50468
|
left: ${HEADER_WIDTH}px;
|
|
50456
|
-
right:
|
|
50469
|
+
right: ${SCROLLBAR_WIDTH}px;
|
|
50457
50470
|
height: ${HEADER_HEIGHT}px;
|
|
50458
50471
|
&.o-dragging {
|
|
50459
50472
|
cursor: grabbing;
|
|
@@ -50619,9 +50632,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50619
50632
|
position: absolute;
|
|
50620
50633
|
top: ${HEADER_HEIGHT}px;
|
|
50621
50634
|
left: 0;
|
|
50622
|
-
|
|
50635
|
+
bottom: ${SCROLLBAR_WIDTH}px;
|
|
50623
50636
|
width: ${HEADER_WIDTH}px;
|
|
50624
|
-
height: calc(100% - ${HEADER_HEIGHT + SCROLLBAR_WIDTH}px);
|
|
50625
50637
|
&.o-dragging {
|
|
50626
50638
|
cursor: grabbing;
|
|
50627
50639
|
}
|
|
@@ -58622,6 +58634,15 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58622
58634
|
}
|
|
58623
58635
|
}
|
|
58624
58636
|
class SpreadsheetPivotCorePlugin extends CorePlugin {
|
|
58637
|
+
allowDispatch(cmd) {
|
|
58638
|
+
switch (cmd.type) {
|
|
58639
|
+
case "ADD_PIVOT":
|
|
58640
|
+
case "UPDATE_PIVOT":
|
|
58641
|
+
const definition = cmd.pivot;
|
|
58642
|
+
return this.checkDataSetValidity(definition);
|
|
58643
|
+
}
|
|
58644
|
+
return "Success" /* CommandResult.Success */;
|
|
58645
|
+
}
|
|
58625
58646
|
adaptRanges(applyChange) {
|
|
58626
58647
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
58627
58648
|
const definition = this.getters.getPivotCoreDefinition(pivotId);
|
|
@@ -58640,6 +58661,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58640
58661
|
}
|
|
58641
58662
|
}
|
|
58642
58663
|
}
|
|
58664
|
+
checkDataSetValidity(definition) {
|
|
58665
|
+
if (definition.type === "SPREADSHEET" && definition.dataSet) {
|
|
58666
|
+
const { zone, sheetId } = definition.dataSet;
|
|
58667
|
+
if (!sheetId || !this.getters.tryGetSheet(sheetId) || !zone || !isZoneValid(zone)) {
|
|
58668
|
+
return "InvalidDataSet" /* CommandResult.InvalidDataSet */;
|
|
58669
|
+
}
|
|
58670
|
+
return this.getters.checkZonesExistInSheet(sheetId, [zone]);
|
|
58671
|
+
}
|
|
58672
|
+
return "Success" /* CommandResult.Success */;
|
|
58673
|
+
}
|
|
58643
58674
|
}
|
|
58644
58675
|
|
|
58645
58676
|
class TableStylePlugin extends CorePlugin {
|
|
@@ -61439,7 +61470,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61439
61470
|
tables = {};
|
|
61440
61471
|
handle(cmd) {
|
|
61441
61472
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
61442
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd) ||
|
|
61473
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
|
|
61443
61474
|
cmd.type === "EVALUATE_CELLS") {
|
|
61444
61475
|
this.tables = {};
|
|
61445
61476
|
return;
|
|
@@ -61872,6 +61903,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61872
61903
|
}
|
|
61873
61904
|
return values;
|
|
61874
61905
|
}
|
|
61906
|
+
else if (rowDomain.length === this.definition.rows.length &&
|
|
61907
|
+
colDomain.length &&
|
|
61908
|
+
colDomain.length < this.definition.columns.length) {
|
|
61909
|
+
const colSubTree = this.getSubTreeMatchingDomain(table.getColTree(), colDomain);
|
|
61910
|
+
const domains = this.treeToLeafDomains(colSubTree, colDomain);
|
|
61911
|
+
for (const domain of domains) {
|
|
61912
|
+
values.push(this._getPivotCellValueAndFormat(measure.id, rowDomain.concat(domain)));
|
|
61913
|
+
}
|
|
61914
|
+
return values;
|
|
61915
|
+
}
|
|
61875
61916
|
else {
|
|
61876
61917
|
const tree = table.getRowTree();
|
|
61877
61918
|
const subTree = this.getSubTreeMatchingDomain(tree, rowDomain);
|
|
@@ -65286,7 +65327,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65286
65327
|
tableStyles = {};
|
|
65287
65328
|
handle(cmd) {
|
|
65288
65329
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
65289
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd) ||
|
|
65330
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
|
|
65290
65331
|
cmd.type === "EVALUATE_CELLS") {
|
|
65291
65332
|
this.tableStyles = {};
|
|
65292
65333
|
return;
|
|
@@ -67250,6 +67291,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
67250
67291
|
});
|
|
67251
67292
|
this.selectCell(col, row);
|
|
67252
67293
|
}
|
|
67294
|
+
const { col, row } = this.gridSelection.anchor.cell;
|
|
67295
|
+
this.moveClient({ sheetId: this.activeSheet.id, col, row });
|
|
67253
67296
|
}
|
|
67254
67297
|
/**
|
|
67255
67298
|
* Ensure selections are not outside sheet boundaries.
|
|
@@ -67989,8 +68032,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
67989
68032
|
case "REMOVE_TABLE":
|
|
67990
68033
|
case "UPDATE_TABLE":
|
|
67991
68034
|
case "UPDATE_FILTER":
|
|
67992
|
-
|
|
67993
|
-
|
|
68035
|
+
case "UNFREEZE_ROWS":
|
|
68036
|
+
case "UNFREEZE_COLUMNS":
|
|
68037
|
+
case "FREEZE_COLUMNS":
|
|
68038
|
+
case "FREEZE_ROWS":
|
|
68039
|
+
case "UNFREEZE_COLUMNS_ROWS":
|
|
67994
68040
|
case "REMOVE_COLUMNS_ROWS":
|
|
67995
68041
|
case "RESIZE_COLUMNS_ROWS":
|
|
67996
68042
|
case "HIDE_COLUMNS_ROWS":
|
|
@@ -68003,11 +68049,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
68003
68049
|
case "FOLD_HEADER_GROUPS_IN_ZONE":
|
|
68004
68050
|
case "UNFOLD_HEADER_GROUPS_IN_ZONE":
|
|
68005
68051
|
case "UNFOLD_ALL_HEADER_GROUPS":
|
|
68006
|
-
case "FOLD_ALL_HEADER_GROUPS":
|
|
68007
|
-
|
|
68008
|
-
this.sheetsWithDirtyViewports.add(sheetId);
|
|
68052
|
+
case "FOLD_ALL_HEADER_GROUPS":
|
|
68053
|
+
this.sheetsWithDirtyViewports.add(cmd.sheetId);
|
|
68009
68054
|
break;
|
|
68010
|
-
}
|
|
68011
68055
|
case "UPDATE_CELL":
|
|
68012
68056
|
// update cell content or format can change hidden rows because of data filters
|
|
68013
68057
|
if ("content" in cmd || "format" in cmd || cmd.style?.fontSize !== undefined) {
|
|
@@ -68023,13 +68067,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
68023
68067
|
case "ACTIVATE_SHEET":
|
|
68024
68068
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
68025
68069
|
break;
|
|
68026
|
-
case "UNFREEZE_ROWS":
|
|
68027
|
-
case "UNFREEZE_COLUMNS":
|
|
68028
|
-
case "FREEZE_COLUMNS":
|
|
68029
|
-
case "FREEZE_ROWS":
|
|
68030
|
-
case "UNFREEZE_COLUMNS_ROWS":
|
|
68031
|
-
this.resetViewports(this.getters.getActiveSheetId());
|
|
68032
|
-
break;
|
|
68033
68070
|
case "SCROLL_TO_CELL":
|
|
68034
68071
|
this.refreshViewport(this.getters.getActiveSheetId(), { col: cmd.col, row: cmd.row });
|
|
68035
68072
|
break;
|
|
@@ -69207,7 +69244,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
69207
69244
|
}
|
|
69208
69245
|
handle(cmd) {
|
|
69209
69246
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
69210
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd)) {
|
|
69247
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd))) {
|
|
69211
69248
|
this.isDirty = true;
|
|
69212
69249
|
}
|
|
69213
69250
|
switch (cmd.type) {
|
|
@@ -75768,9 +75805,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
75768
75805
|
exports.tokenize = tokenize;
|
|
75769
75806
|
|
|
75770
75807
|
|
|
75771
|
-
__info__.version = "18.1.
|
|
75772
|
-
__info__.date = "2025-
|
|
75773
|
-
__info__.hash = "
|
|
75808
|
+
__info__.version = "18.1.18";
|
|
75809
|
+
__info__.date = "2025-05-02T12:30:47.822Z";
|
|
75810
|
+
__info__.hash = "29c21c6";
|
|
75774
75811
|
|
|
75775
75812
|
|
|
75776
75813
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|