@odoo/o-spreadsheet 18.0.24 → 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.
- package/dist/o-spreadsheet.cjs.js +106 -69
- package/dist/o-spreadsheet.d.ts +5 -2
- package/dist/o-spreadsheet.esm.js +106 -69
- package/dist/o-spreadsheet.iife.js +106 -69
- package/dist/o-spreadsheet.iife.min.js +10 -11
- 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.0.
|
|
6
|
-
* @date 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.26
|
|
6
|
+
* @date 2025-05-02T12:30:31.966Z
|
|
7
|
+
* @hash 5bdf504
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -3592,6 +3592,7 @@
|
|
|
3592
3592
|
CommandResult["ValueCellIsInvalidFormula"] = "ValueCellIsInvalidFormula";
|
|
3593
3593
|
CommandResult["InvalidDefinition"] = "InvalidDefinition";
|
|
3594
3594
|
CommandResult["InvalidColor"] = "InvalidColor";
|
|
3595
|
+
CommandResult["InvalidPivotDataSet"] = "InvalidPivotDataSet";
|
|
3595
3596
|
})(exports.CommandResult || (exports.CommandResult = {}));
|
|
3596
3597
|
|
|
3597
3598
|
const DEFAULT_LOCALES = [
|
|
@@ -3664,11 +3665,13 @@
|
|
|
3664
3665
|
NullError: "#NULL!",
|
|
3665
3666
|
};
|
|
3666
3667
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3667
|
-
class EvaluationError
|
|
3668
|
+
class EvaluationError {
|
|
3669
|
+
message;
|
|
3668
3670
|
value;
|
|
3669
3671
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3670
|
-
|
|
3672
|
+
this.message = message;
|
|
3671
3673
|
this.value = value;
|
|
3674
|
+
this.message = message.toString();
|
|
3672
3675
|
}
|
|
3673
3676
|
}
|
|
3674
3677
|
class BadExpressionError extends EvaluationError {
|
|
@@ -15667,9 +15670,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
15667
15670
|
const GAUGE_TITLE_PADDING_TOP = SCORECARD_GAUGE_CHART_PADDING;
|
|
15668
15671
|
function drawGaugeChart(canvas, runtime) {
|
|
15669
15672
|
const canvasBoundingRect = canvas.getBoundingClientRect();
|
|
15670
|
-
|
|
15671
|
-
canvas.
|
|
15673
|
+
const dpr = window.devicePixelRatio || 1;
|
|
15674
|
+
canvas.width = dpr * canvasBoundingRect.width;
|
|
15675
|
+
canvas.height = dpr * canvasBoundingRect.height;
|
|
15672
15676
|
const ctx = canvas.getContext("2d");
|
|
15677
|
+
ctx.scale(dpr, dpr);
|
|
15673
15678
|
const config = getGaugeRenderingConfig(canvasBoundingRect, runtime, ctx);
|
|
15674
15679
|
drawBackground(ctx, config);
|
|
15675
15680
|
drawGauge(ctx, config);
|
|
@@ -16231,9 +16236,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16231
16236
|
};
|
|
16232
16237
|
function drawScoreChart(structure, canvas) {
|
|
16233
16238
|
const ctx = canvas.getContext("2d");
|
|
16234
|
-
|
|
16235
|
-
|
|
16236
|
-
canvas.height = structure.canvas.height;
|
|
16239
|
+
const dpr = window.devicePixelRatio || 1;
|
|
16240
|
+
canvas.width = dpr * structure.canvas.width;
|
|
16241
|
+
canvas.height = dpr * structure.canvas.height;
|
|
16242
|
+
ctx.scale(dpr, dpr);
|
|
16243
|
+
const availableWidth = structure.canvas.width - DEFAULT_CHART_PADDING;
|
|
16237
16244
|
ctx.fillStyle = structure.canvas.backgroundColor;
|
|
16238
16245
|
ctx.fillRect(0, 0, structure.canvas.width, structure.canvas.height);
|
|
16239
16246
|
if (structure.title) {
|
|
@@ -16910,6 +16917,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16910
16917
|
canvas = owl.useRef("graphContainer");
|
|
16911
16918
|
chart;
|
|
16912
16919
|
currentRuntime;
|
|
16920
|
+
currentDevicePixelRatio = window.devicePixelRatio;
|
|
16913
16921
|
get background() {
|
|
16914
16922
|
return this.chartRuntime.background;
|
|
16915
16923
|
}
|
|
@@ -16943,6 +16951,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16943
16951
|
}
|
|
16944
16952
|
this.currentRuntime = runtime;
|
|
16945
16953
|
}
|
|
16954
|
+
else if (this.currentDevicePixelRatio !== window.devicePixelRatio) {
|
|
16955
|
+
this.currentDevicePixelRatio = window.devicePixelRatio;
|
|
16956
|
+
this.updateChartJs(deepCopy(this.currentRuntime));
|
|
16957
|
+
}
|
|
16946
16958
|
});
|
|
16947
16959
|
}
|
|
16948
16960
|
createChart(chartData) {
|
|
@@ -16985,7 +16997,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16985
16997
|
owl.useEffect(this.createChart.bind(this), () => {
|
|
16986
16998
|
const canvas = this.canvas.el;
|
|
16987
16999
|
const rect = canvas.getBoundingClientRect();
|
|
16988
|
-
return [rect.width, rect.height, this.runtime, this.canvas.el];
|
|
17000
|
+
return [rect.width, rect.height, this.runtime, this.canvas.el, window.devicePixelRatio];
|
|
16989
17001
|
});
|
|
16990
17002
|
}
|
|
16991
17003
|
createChart() {
|
|
@@ -17453,7 +17465,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17453
17465
|
assertSquareMatrix(_t("The argument square_matrix must have the same number of columns and rows."), _matrix);
|
|
17454
17466
|
const { inverted } = invertMatrix(_matrix);
|
|
17455
17467
|
if (!inverted) {
|
|
17456
|
-
|
|
17468
|
+
return new EvaluationError(_t("The matrix is not invertible."));
|
|
17457
17469
|
}
|
|
17458
17470
|
return inverted;
|
|
17459
17471
|
},
|
|
@@ -17613,7 +17625,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17613
17625
|
.flat()
|
|
17614
17626
|
.filter(shouldKeepValue(_ignore));
|
|
17615
17627
|
if (result.length === 0) {
|
|
17616
|
-
|
|
17628
|
+
return new NotAvailableError(_t("No results for the given arguments of TOCOL."));
|
|
17617
17629
|
}
|
|
17618
17630
|
return [result];
|
|
17619
17631
|
},
|
|
@@ -17634,7 +17646,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17634
17646
|
.filter(shouldKeepValue(_ignore))
|
|
17635
17647
|
.map((item) => [item]);
|
|
17636
17648
|
if (result.length === 0 || result[0].length === 0) {
|
|
17637
|
-
|
|
17649
|
+
return new NotAvailableError(_t("No results for the given arguments of TOROW."));
|
|
17638
17650
|
}
|
|
17639
17651
|
return result;
|
|
17640
17652
|
},
|
|
@@ -18481,7 +18493,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
18481
18493
|
count += 1;
|
|
18482
18494
|
}
|
|
18483
18495
|
if (isEvaluationError(f)) {
|
|
18484
|
-
|
|
18496
|
+
return j;
|
|
18485
18497
|
}
|
|
18486
18498
|
}
|
|
18487
18499
|
}
|
|
@@ -19384,7 +19396,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
19384
19396
|
const flatY = dataY.flat();
|
|
19385
19397
|
assertSameNumberOfElements(flatX, flatY);
|
|
19386
19398
|
if (flatX.length === 0) {
|
|
19387
|
-
|
|
19399
|
+
return new EvaluationError(_t("[[FUNCTION_NAME]] expects non-empty ranges for both parameters."));
|
|
19388
19400
|
}
|
|
19389
19401
|
const n = flatX.length;
|
|
19390
19402
|
let trueN = 0, trueP = 0, falseP = 0, falseN = 0;
|
|
@@ -19747,7 +19759,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
19747
19759
|
}
|
|
19748
19760
|
}
|
|
19749
19761
|
if (!found) {
|
|
19750
|
-
|
|
19762
|
+
return new NotAvailableError(_t("Value not found in the given data."));
|
|
19751
19763
|
}
|
|
19752
19764
|
return rank;
|
|
19753
19765
|
},
|
|
@@ -21372,7 +21384,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
21372
21384
|
}
|
|
21373
21385
|
}
|
|
21374
21386
|
if (!result.length) {
|
|
21375
|
-
|
|
21387
|
+
return new NotAvailableError(_t("No match found in FILTER evaluation"));
|
|
21376
21388
|
}
|
|
21377
21389
|
return mode === "row" ? transposeMatrix(result) : result;
|
|
21378
21390
|
},
|
|
@@ -21501,7 +21513,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
21501
21513
|
result.push(row.data);
|
|
21502
21514
|
}
|
|
21503
21515
|
if (!result.length)
|
|
21504
|
-
|
|
21516
|
+
return new EvaluationError(_t("No unique values found"));
|
|
21505
21517
|
return _byColumn ? result : transposeMatrix(result);
|
|
21506
21518
|
},
|
|
21507
21519
|
isExported: true,
|
|
@@ -24427,7 +24439,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24427
24439
|
return result;
|
|
24428
24440
|
}
|
|
24429
24441
|
}
|
|
24430
|
-
|
|
24442
|
+
return new EvaluationError(_t("No match."));
|
|
24431
24443
|
},
|
|
24432
24444
|
isExported: true,
|
|
24433
24445
|
};
|
|
@@ -24618,7 +24630,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24618
24630
|
],
|
|
24619
24631
|
compute: function (cellReference) {
|
|
24620
24632
|
if (isEvaluationError(cellReference?.value)) {
|
|
24621
|
-
|
|
24633
|
+
return cellReference;
|
|
24622
24634
|
}
|
|
24623
24635
|
const column = cellReference === undefined
|
|
24624
24636
|
? this.__originCellPosition?.col
|
|
@@ -24636,7 +24648,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24636
24648
|
args: [arg("range (meta)", _t("The range whose column count will be returned."))],
|
|
24637
24649
|
compute: function (range) {
|
|
24638
24650
|
if (isEvaluationError(range?.value)) {
|
|
24639
|
-
|
|
24651
|
+
return range;
|
|
24640
24652
|
}
|
|
24641
24653
|
const zone = toZone(range.value);
|
|
24642
24654
|
return zone.right - zone.left + 1;
|
|
@@ -24714,11 +24726,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24714
24726
|
compute: function (reference, useA1Notation = { value: true }) {
|
|
24715
24727
|
let _reference = reference?.value?.toString();
|
|
24716
24728
|
if (!_reference) {
|
|
24717
|
-
|
|
24729
|
+
return new InvalidReferenceError(_t("Reference should be defined."));
|
|
24718
24730
|
}
|
|
24719
24731
|
const _useA1Notation = toBoolean(useA1Notation);
|
|
24720
24732
|
if (!_useA1Notation) {
|
|
24721
|
-
|
|
24733
|
+
return new EvaluationError(_t("R1C1 notation is not supported."));
|
|
24722
24734
|
}
|
|
24723
24735
|
const sheetId = this.__originSheetId;
|
|
24724
24736
|
const originPosition = this.__originCellPosition;
|
|
@@ -24730,7 +24742,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24730
24742
|
}
|
|
24731
24743
|
const range = this.getters.getRangeFromSheetXC(sheetId, _reference);
|
|
24732
24744
|
if (range === undefined || range.invalidXc || range.invalidSheetName) {
|
|
24733
|
-
|
|
24745
|
+
return new InvalidReferenceError();
|
|
24734
24746
|
}
|
|
24735
24747
|
if (originPosition) {
|
|
24736
24748
|
this.addDependencies?.(originPosition, [range]);
|
|
@@ -24841,7 +24853,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24841
24853
|
],
|
|
24842
24854
|
compute: function (cellReference) {
|
|
24843
24855
|
if (isEvaluationError(cellReference?.value)) {
|
|
24844
|
-
|
|
24856
|
+
return cellReference;
|
|
24845
24857
|
}
|
|
24846
24858
|
const row = cellReference === undefined
|
|
24847
24859
|
? this.__originCellPosition?.row
|
|
@@ -24859,7 +24871,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24859
24871
|
args: [arg("range (meta)", _t("The range whose row count will be returned."))],
|
|
24860
24872
|
compute: function (range) {
|
|
24861
24873
|
if (isEvaluationError(range?.value)) {
|
|
24862
|
-
|
|
24874
|
+
return range;
|
|
24863
24875
|
}
|
|
24864
24876
|
const zone = toZone(range.value);
|
|
24865
24877
|
return zone.bottom - zone.top + 1;
|
|
@@ -25045,11 +25057,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
25045
25057
|
const _pivotFormulaId = toString(pivotFormulaId);
|
|
25046
25058
|
const _rowCount = toNumber(rowCount, this.locale);
|
|
25047
25059
|
if (_rowCount < 0) {
|
|
25048
|
-
|
|
25060
|
+
return new EvaluationError(_t("The number of rows must be positive."));
|
|
25049
25061
|
}
|
|
25050
25062
|
const _columnCount = toNumber(columnCount, this.locale);
|
|
25051
25063
|
if (_columnCount < 0) {
|
|
25052
|
-
|
|
25064
|
+
return new EvaluationError(_t("The number of columns must be positive."));
|
|
25053
25065
|
}
|
|
25054
25066
|
const _includeColumnHeaders = toBoolean(includeColumnHeaders);
|
|
25055
25067
|
const _includedTotal = toBoolean(includeTotal);
|
|
@@ -25117,7 +25129,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
25117
25129
|
}
|
|
25118
25130
|
const _cellReference = cellReference?.value;
|
|
25119
25131
|
if (!_cellReference) {
|
|
25120
|
-
|
|
25132
|
+
return new EvaluationError("In this context, the function OFFSET needs to have a cell or range in parameter.");
|
|
25121
25133
|
}
|
|
25122
25134
|
const zone = toZone(_cellReference);
|
|
25123
25135
|
let offsetHeight = zone.bottom - zone.top + 1;
|
|
@@ -28923,7 +28935,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
28923
28935
|
owl.useEffect(() => drawGaugeChart(this.canvas.el, this.runtime), () => {
|
|
28924
28936
|
const canvas = this.canvas.el;
|
|
28925
28937
|
const rect = canvas.getBoundingClientRect();
|
|
28926
|
-
return [rect.width, rect.height, this.runtime, this.canvas.el];
|
|
28938
|
+
return [rect.width, rect.height, this.runtime, this.canvas.el, window.devicePixelRatio];
|
|
28927
28939
|
});
|
|
28928
28940
|
}
|
|
28929
28941
|
}
|
|
@@ -29048,9 +29060,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29048
29060
|
};
|
|
29049
29061
|
}
|
|
29050
29062
|
getDefinitionForExcel() {
|
|
29051
|
-
// Excel does not support aggregating labels
|
|
29052
|
-
if (this.aggregated)
|
|
29053
|
-
return undefined;
|
|
29054
29063
|
const dataSets = this.dataSets
|
|
29055
29064
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
29056
29065
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -30291,9 +30300,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30291
30300
|
return new LineChart(definition, this.sheetId, this.getters);
|
|
30292
30301
|
}
|
|
30293
30302
|
getDefinitionForExcel() {
|
|
30294
|
-
// Excel does not support aggregating labels
|
|
30295
|
-
if (this.aggregated)
|
|
30296
|
-
return undefined;
|
|
30297
30303
|
const dataSets = this.dataSets
|
|
30298
30304
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
30299
30305
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -30404,9 +30410,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30404
30410
|
return new PieChart(definition, sheetId, this.getters);
|
|
30405
30411
|
}
|
|
30406
30412
|
getDefinitionForExcel() {
|
|
30407
|
-
// Excel does not support aggregating labels
|
|
30408
|
-
if (this.aggregated)
|
|
30409
|
-
return undefined;
|
|
30410
30413
|
const dataSets = this.dataSets
|
|
30411
30414
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
30412
30415
|
.filter((ds) => ds.range !== "" && ds.range !== CellErrorType.InvalidReference);
|
|
@@ -32625,18 +32628,28 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32625
32628
|
function useInterval(callback, delay) {
|
|
32626
32629
|
let intervalId;
|
|
32627
32630
|
const { setInterval, clearInterval } = window;
|
|
32631
|
+
const pause = () => {
|
|
32632
|
+
clearInterval(intervalId);
|
|
32633
|
+
intervalId = undefined;
|
|
32634
|
+
};
|
|
32635
|
+
const safeCallback = () => {
|
|
32636
|
+
try {
|
|
32637
|
+
callback();
|
|
32638
|
+
}
|
|
32639
|
+
catch (e) {
|
|
32640
|
+
pause();
|
|
32641
|
+
throw e;
|
|
32642
|
+
}
|
|
32643
|
+
};
|
|
32628
32644
|
owl.useEffect(() => {
|
|
32629
|
-
intervalId = setInterval(
|
|
32645
|
+
intervalId = setInterval(safeCallback, delay);
|
|
32630
32646
|
return () => clearInterval(intervalId);
|
|
32631
32647
|
}, () => [delay]);
|
|
32632
32648
|
return {
|
|
32633
|
-
pause
|
|
32634
|
-
clearInterval(intervalId);
|
|
32635
|
-
intervalId = undefined;
|
|
32636
|
-
},
|
|
32649
|
+
pause,
|
|
32637
32650
|
resume: () => {
|
|
32638
32651
|
if (intervalId === undefined) {
|
|
32639
|
-
intervalId = setInterval(
|
|
32652
|
+
intervalId = setInterval(safeCallback, delay);
|
|
32640
32653
|
}
|
|
32641
32654
|
},
|
|
32642
32655
|
};
|
|
@@ -37481,7 +37494,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
37481
37494
|
}
|
|
37482
37495
|
setHexColor(ev) {
|
|
37483
37496
|
// only support HEX code input
|
|
37484
|
-
const val = ev.target.value.slice(0, 7);
|
|
37497
|
+
const val = ev.target.value.replace("##", "#").slice(0, 7);
|
|
37485
37498
|
this.state.customHexColor = val;
|
|
37486
37499
|
if (!isColorValid(val)) ;
|
|
37487
37500
|
else {
|
|
@@ -48356,7 +48369,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
48356
48369
|
position: absolute;
|
|
48357
48370
|
top: 0;
|
|
48358
48371
|
left: ${HEADER_WIDTH}px;
|
|
48359
|
-
right:
|
|
48372
|
+
right: ${SCROLLBAR_WIDTH}px;
|
|
48360
48373
|
height: ${HEADER_HEIGHT}px;
|
|
48361
48374
|
&.o-dragging {
|
|
48362
48375
|
cursor: grabbing;
|
|
@@ -48522,9 +48535,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
48522
48535
|
position: absolute;
|
|
48523
48536
|
top: ${HEADER_HEIGHT}px;
|
|
48524
48537
|
left: 0;
|
|
48525
|
-
|
|
48538
|
+
bottom: ${SCROLLBAR_WIDTH}px;
|
|
48526
48539
|
width: ${HEADER_WIDTH}px;
|
|
48527
|
-
height: calc(100% - ${HEADER_HEIGHT + SCROLLBAR_WIDTH}px);
|
|
48528
48540
|
&.o-dragging {
|
|
48529
48541
|
cursor: grabbing;
|
|
48530
48542
|
}
|
|
@@ -56609,6 +56621,15 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56609
56621
|
}
|
|
56610
56622
|
}
|
|
56611
56623
|
class SpreadsheetPivotCorePlugin extends CorePlugin {
|
|
56624
|
+
allowDispatch(cmd) {
|
|
56625
|
+
switch (cmd.type) {
|
|
56626
|
+
case "ADD_PIVOT":
|
|
56627
|
+
case "UPDATE_PIVOT":
|
|
56628
|
+
const definition = cmd.pivot;
|
|
56629
|
+
return this.checkDataSetValidity(definition);
|
|
56630
|
+
}
|
|
56631
|
+
return "Success" /* CommandResult.Success */;
|
|
56632
|
+
}
|
|
56612
56633
|
adaptRanges(applyChange) {
|
|
56613
56634
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
56614
56635
|
const definition = this.getters.getPivotCoreDefinition(pivotId);
|
|
@@ -56627,6 +56648,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56627
56648
|
}
|
|
56628
56649
|
}
|
|
56629
56650
|
}
|
|
56651
|
+
checkDataSetValidity(definition) {
|
|
56652
|
+
if (definition.type === "SPREADSHEET" && definition.dataSet) {
|
|
56653
|
+
const { zone, sheetId } = definition.dataSet;
|
|
56654
|
+
if (!sheetId || !this.getters.tryGetSheet(sheetId) || !zone || !isZoneValid(zone)) {
|
|
56655
|
+
return "InvalidDataSet" /* CommandResult.InvalidDataSet */;
|
|
56656
|
+
}
|
|
56657
|
+
return this.getters.checkZonesExistInSheet(sheetId, [zone]);
|
|
56658
|
+
}
|
|
56659
|
+
return "Success" /* CommandResult.Success */;
|
|
56660
|
+
}
|
|
56630
56661
|
}
|
|
56631
56662
|
|
|
56632
56663
|
class TableStylePlugin extends CorePlugin {
|
|
@@ -59464,7 +59495,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59464
59495
|
tables = {};
|
|
59465
59496
|
handle(cmd) {
|
|
59466
59497
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
59467
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd) ||
|
|
59498
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
|
|
59468
59499
|
cmd.type === "EVALUATE_CELLS") {
|
|
59469
59500
|
this.tables = {};
|
|
59470
59501
|
return;
|
|
@@ -59897,6 +59928,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
59897
59928
|
}
|
|
59898
59929
|
return values;
|
|
59899
59930
|
}
|
|
59931
|
+
else if (rowDomain.length === this.definition.rows.length &&
|
|
59932
|
+
colDomain.length &&
|
|
59933
|
+
colDomain.length < this.definition.columns.length) {
|
|
59934
|
+
const colSubTree = this.getSubTreeMatchingDomain(table.getColTree(), colDomain);
|
|
59935
|
+
const domains = this.treeToLeafDomains(colSubTree, colDomain);
|
|
59936
|
+
for (const domain of domains) {
|
|
59937
|
+
values.push(this._getPivotCellValueAndFormat(measure.id, rowDomain.concat(domain)));
|
|
59938
|
+
}
|
|
59939
|
+
return values;
|
|
59940
|
+
}
|
|
59900
59941
|
else {
|
|
59901
59942
|
const tree = table.getRowTree();
|
|
59902
59943
|
const subTree = this.getSubTreeMatchingDomain(tree, rowDomain);
|
|
@@ -63258,7 +63299,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63258
63299
|
tableStyles = {};
|
|
63259
63300
|
handle(cmd) {
|
|
63260
63301
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
63261
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd) ||
|
|
63302
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd)) ||
|
|
63262
63303
|
cmd.type === "EVALUATE_CELLS") {
|
|
63263
63304
|
this.tableStyles = {};
|
|
63264
63305
|
return;
|
|
@@ -65222,6 +65263,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65222
65263
|
});
|
|
65223
65264
|
this.selectCell(col, row);
|
|
65224
65265
|
}
|
|
65266
|
+
const { col, row } = this.gridSelection.anchor.cell;
|
|
65267
|
+
this.moveClient({ sheetId: this.activeSheet.id, col, row });
|
|
65225
65268
|
}
|
|
65226
65269
|
/**
|
|
65227
65270
|
* Ensure selections are not outside sheet boundaries.
|
|
@@ -65954,8 +65997,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65954
65997
|
case "REMOVE_TABLE":
|
|
65955
65998
|
case "UPDATE_TABLE":
|
|
65956
65999
|
case "UPDATE_FILTER":
|
|
65957
|
-
|
|
65958
|
-
|
|
66000
|
+
case "UNFREEZE_ROWS":
|
|
66001
|
+
case "UNFREEZE_COLUMNS":
|
|
66002
|
+
case "FREEZE_COLUMNS":
|
|
66003
|
+
case "FREEZE_ROWS":
|
|
66004
|
+
case "UNFREEZE_COLUMNS_ROWS":
|
|
65959
66005
|
case "REMOVE_COLUMNS_ROWS":
|
|
65960
66006
|
case "RESIZE_COLUMNS_ROWS":
|
|
65961
66007
|
case "HIDE_COLUMNS_ROWS":
|
|
@@ -65968,11 +66014,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65968
66014
|
case "FOLD_HEADER_GROUPS_IN_ZONE":
|
|
65969
66015
|
case "UNFOLD_HEADER_GROUPS_IN_ZONE":
|
|
65970
66016
|
case "UNFOLD_ALL_HEADER_GROUPS":
|
|
65971
|
-
case "FOLD_ALL_HEADER_GROUPS":
|
|
65972
|
-
|
|
65973
|
-
this.sheetsWithDirtyViewports.add(sheetId);
|
|
66017
|
+
case "FOLD_ALL_HEADER_GROUPS":
|
|
66018
|
+
this.sheetsWithDirtyViewports.add(cmd.sheetId);
|
|
65974
66019
|
break;
|
|
65975
|
-
}
|
|
65976
66020
|
case "UPDATE_CELL":
|
|
65977
66021
|
// update cell content or format can change hidden rows because of data filters
|
|
65978
66022
|
if ("content" in cmd || "format" in cmd || cmd.style?.fontSize !== undefined) {
|
|
@@ -65988,13 +66032,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65988
66032
|
case "ACTIVATE_SHEET":
|
|
65989
66033
|
this.sheetsWithDirtyViewports.add(cmd.sheetIdTo);
|
|
65990
66034
|
break;
|
|
65991
|
-
case "UNFREEZE_ROWS":
|
|
65992
|
-
case "UNFREEZE_COLUMNS":
|
|
65993
|
-
case "FREEZE_COLUMNS":
|
|
65994
|
-
case "FREEZE_ROWS":
|
|
65995
|
-
case "UNFREEZE_COLUMNS_ROWS":
|
|
65996
|
-
this.resetViewports(this.getters.getActiveSheetId());
|
|
65997
|
-
break;
|
|
65998
66035
|
case "DELETE_SHEET":
|
|
65999
66036
|
this.sheetsWithDirtyViewports.delete(cmd.sheetId);
|
|
66000
66037
|
break;
|
|
@@ -67174,7 +67211,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
67174
67211
|
}
|
|
67175
67212
|
handle(cmd) {
|
|
67176
67213
|
if (invalidateEvaluationCommands.has(cmd.type) ||
|
|
67177
|
-
(cmd.type === "UPDATE_CELL" && "content" in cmd)) {
|
|
67214
|
+
(cmd.type === "UPDATE_CELL" && ("content" in cmd || "format" in cmd))) {
|
|
67178
67215
|
this.isDirty = true;
|
|
67179
67216
|
}
|
|
67180
67217
|
switch (cmd.type) {
|
|
@@ -73756,9 +73793,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
73756
73793
|
exports.tokenize = tokenize;
|
|
73757
73794
|
|
|
73758
73795
|
|
|
73759
|
-
__info__.version = "18.0.
|
|
73760
|
-
__info__.date = "2025-
|
|
73761
|
-
__info__.hash = "
|
|
73796
|
+
__info__.version = "18.0.26";
|
|
73797
|
+
__info__.date = "2025-05-02T12:30:31.966Z";
|
|
73798
|
+
__info__.hash = "5bdf504";
|
|
73762
73799
|
|
|
73763
73800
|
|
|
73764
73801
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|