@odoo/o-spreadsheet 19.2.12 → 19.2.14
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 +169 -27
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +169 -27
- package/dist/o_spreadsheet.iife.js +169 -27
- package/dist/o_spreadsheet.iife.min.js +235 -235
- package/dist/o_spreadsheet.xml +4 -4
- package/package.json +17 -17
|
@@ -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 19.2.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.14
|
|
6
|
+
* @date 2026-05-27T05:57:14.898Z
|
|
7
|
+
* @hash 96730cd
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -2063,6 +2063,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2063
2063
|
}
|
|
2064
2064
|
};
|
|
2065
2065
|
var StoreFactory = class {
|
|
2066
|
+
get;
|
|
2066
2067
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
2067
2068
|
constructor(get) {
|
|
2068
2069
|
this.get = get;
|
|
@@ -2107,6 +2108,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
2107
2108
|
return MetaStore;
|
|
2108
2109
|
}
|
|
2109
2110
|
var DisposableStore = class {
|
|
2111
|
+
get;
|
|
2110
2112
|
disposeCallbacks = [];
|
|
2111
2113
|
constructor(get) {
|
|
2112
2114
|
this.get = get;
|
|
@@ -2862,6 +2864,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
2862
2864
|
else return ALTERNATING_COLORS_XL;
|
|
2863
2865
|
}
|
|
2864
2866
|
var ColorGenerator = class {
|
|
2867
|
+
preferredColors;
|
|
2865
2868
|
currentColorIndex = 0;
|
|
2866
2869
|
palette;
|
|
2867
2870
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -3580,6 +3583,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3580
3583
|
return sprintf(_translate(s), ...values);
|
|
3581
3584
|
};
|
|
3582
3585
|
var LazyTranslatedString = class extends String {
|
|
3586
|
+
values;
|
|
3583
3587
|
constructor(str, values) {
|
|
3584
3588
|
super(str);
|
|
3585
3589
|
this.values = values;
|
|
@@ -3609,6 +3613,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3609
3613
|
};
|
|
3610
3614
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3611
3615
|
var EvaluationError = class {
|
|
3616
|
+
message;
|
|
3617
|
+
value;
|
|
3612
3618
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3613
3619
|
this.message = message;
|
|
3614
3620
|
this.value = value;
|
|
@@ -3641,6 +3647,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3641
3647
|
}
|
|
3642
3648
|
};
|
|
3643
3649
|
var SplillBlockedError = class extends EvaluationError {
|
|
3650
|
+
errorOriginPosition;
|
|
3644
3651
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
3645
3652
|
super(message, CellErrorType.SpilledBlocked);
|
|
3646
3653
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -6478,8 +6485,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
6478
6485
|
changeType: "NONE",
|
|
6479
6486
|
range
|
|
6480
6487
|
};
|
|
6488
|
+
const isUnboundedAtEnd = range.unboundedZone[end] === void 0;
|
|
6489
|
+
if (isUnboundedAtEnd && !range.unboundedZone.hasHeader) return {
|
|
6490
|
+
changeType: "RESIZE",
|
|
6491
|
+
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
6492
|
+
};
|
|
6481
6493
|
if (cmd.position === "after") {
|
|
6482
|
-
if (range.zone[start] <= cmd.base && cmd.base < range.zone[end]) return {
|
|
6494
|
+
if (range.zone[start] <= cmd.base && (cmd.base < range.zone[end] || isUnboundedAtEnd)) return {
|
|
6483
6495
|
changeType: "RESIZE",
|
|
6484
6496
|
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
6485
6497
|
};
|
|
@@ -7423,6 +7435,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
7423
7435
|
ROUNDDOWN: [{
|
|
7424
7436
|
type: "NUMBER",
|
|
7425
7437
|
value: 0
|
|
7438
|
+
}],
|
|
7439
|
+
IFERROR: [{
|
|
7440
|
+
type: "NUMBER",
|
|
7441
|
+
value: 0
|
|
7426
7442
|
}]
|
|
7427
7443
|
};
|
|
7428
7444
|
/**
|
|
@@ -10136,6 +10152,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10136
10152
|
}, runtime).computeDesign();
|
|
10137
10153
|
}
|
|
10138
10154
|
var ScorecardChartConfigBuilder = class {
|
|
10155
|
+
runtime;
|
|
10139
10156
|
context;
|
|
10140
10157
|
width;
|
|
10141
10158
|
height;
|
|
@@ -16215,6 +16232,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16215
16232
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
16216
16233
|
*/
|
|
16217
16234
|
var Animation = class {
|
|
16235
|
+
startValue;
|
|
16236
|
+
endValue;
|
|
16237
|
+
duration;
|
|
16238
|
+
callback;
|
|
16218
16239
|
startTime = void 0;
|
|
16219
16240
|
animationFrameId = null;
|
|
16220
16241
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -16681,6 +16702,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16681
16702
|
}
|
|
16682
16703
|
};
|
|
16683
16704
|
var PopoverPositionContext = class {
|
|
16705
|
+
anchorRect;
|
|
16706
|
+
containerRect;
|
|
16707
|
+
propsMaxSize;
|
|
16708
|
+
spreadsheetOffset;
|
|
16709
|
+
lastPosition;
|
|
16684
16710
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
16685
16711
|
this.anchorRect = anchorRect;
|
|
16686
16712
|
this.containerRect = containerRect;
|
|
@@ -25785,6 +25811,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
25785
25811
|
* Represent a raw XML string
|
|
25786
25812
|
*/
|
|
25787
25813
|
var XMLString = class {
|
|
25814
|
+
xmlString;
|
|
25788
25815
|
/**
|
|
25789
25816
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
25790
25817
|
*/
|
|
@@ -34023,6 +34050,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
34023
34050
|
//#endregion
|
|
34024
34051
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
34025
34052
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
34053
|
+
args;
|
|
34026
34054
|
constructor(get, args) {
|
|
34027
34055
|
super(get);
|
|
34028
34056
|
this.args = args;
|
|
@@ -34926,6 +34954,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
34926
34954
|
}
|
|
34927
34955
|
};
|
|
34928
34956
|
var ContainerWrapper = class {
|
|
34957
|
+
el;
|
|
34929
34958
|
constructor(el) {
|
|
34930
34959
|
this.el = el;
|
|
34931
34960
|
}
|
|
@@ -34997,6 +35026,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
34997
35026
|
* This plugin handles this internal state.
|
|
34998
35027
|
*/
|
|
34999
35028
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
35029
|
+
initialRanges;
|
|
35030
|
+
inputHasSingleRange;
|
|
35031
|
+
colors;
|
|
35032
|
+
disabledRanges;
|
|
35000
35033
|
mutators = [
|
|
35001
35034
|
"resetWithRanges",
|
|
35002
35035
|
"focusById",
|
|
@@ -43090,6 +43123,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43090
43123
|
//#endregion
|
|
43091
43124
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
43092
43125
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
43126
|
+
pivotId;
|
|
43127
|
+
initialMeasure;
|
|
43093
43128
|
mutators = [
|
|
43094
43129
|
"cancelMeasureDisplayEdition",
|
|
43095
43130
|
"updateMeasureDisplayType",
|
|
@@ -43281,7 +43316,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43281
43316
|
col,
|
|
43282
43317
|
row
|
|
43283
43318
|
};
|
|
43284
|
-
if (
|
|
43319
|
+
if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
|
|
43285
43320
|
}
|
|
43286
43321
|
return positions;
|
|
43287
43322
|
}
|
|
@@ -43572,6 +43607,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43572
43607
|
//#endregion
|
|
43573
43608
|
//#region src/formulas/code_builder.ts
|
|
43574
43609
|
var FunctionCodeBuilder = class {
|
|
43610
|
+
scope;
|
|
43575
43611
|
code = "";
|
|
43576
43612
|
constructor(scope = new Scope()) {
|
|
43577
43613
|
this.scope = scope;
|
|
@@ -43587,6 +43623,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43587
43623
|
}
|
|
43588
43624
|
};
|
|
43589
43625
|
var FunctionCodeImpl = class {
|
|
43626
|
+
scope;
|
|
43627
|
+
returnExpression;
|
|
43590
43628
|
code;
|
|
43591
43629
|
constructor(scope, code, returnExpression) {
|
|
43592
43630
|
this.scope = scope;
|
|
@@ -43669,6 +43707,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43669
43707
|
* without recompiling it (for example when the formula is copied to another cell, or when we want to replace literal values but keep the same structure).
|
|
43670
43708
|
* */
|
|
43671
43709
|
var CompiledFormula = class CompiledFormula {
|
|
43710
|
+
sheetId;
|
|
43711
|
+
tokens;
|
|
43712
|
+
literalValues;
|
|
43713
|
+
symbols;
|
|
43714
|
+
isBadExpression;
|
|
43715
|
+
normalizedFormula;
|
|
43716
|
+
execute;
|
|
43672
43717
|
rangeDependencies;
|
|
43673
43718
|
hasDependencies;
|
|
43674
43719
|
constructor(sheetId, tokens, literalValues, symbols, dependencies, isBadExpression, normalizedFormula, execute) {
|
|
@@ -44553,13 +44598,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
44553
44598
|
break;
|
|
44554
44599
|
}
|
|
44555
44600
|
return {
|
|
44601
|
+
/**
|
|
44602
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
44603
|
+
*/
|
|
44556
44604
|
id: measure.id,
|
|
44605
|
+
/**
|
|
44606
|
+
* Display name of the measure
|
|
44607
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
44608
|
+
*/
|
|
44557
44609
|
get displayName() {
|
|
44558
44610
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
44559
44611
|
},
|
|
44560
44612
|
userDefinedName: measure.userDefinedName,
|
|
44613
|
+
/**
|
|
44614
|
+
* Get the name of the field of the measure
|
|
44615
|
+
*/
|
|
44561
44616
|
fieldName,
|
|
44617
|
+
/**
|
|
44618
|
+
* Get the aggregator of the measure
|
|
44619
|
+
*/
|
|
44562
44620
|
aggregator,
|
|
44621
|
+
/**
|
|
44622
|
+
* Get the type of the measure field
|
|
44623
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
44624
|
+
*/
|
|
44563
44625
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
44564
44626
|
isValid,
|
|
44565
44627
|
isHidden: measure.isHidden,
|
|
@@ -44573,10 +44635,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
44573
44635
|
const type = field?.type ?? "integer";
|
|
44574
44636
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
44575
44637
|
return {
|
|
44638
|
+
/**
|
|
44639
|
+
* Get the display name of the dimension
|
|
44640
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
44641
|
+
*/
|
|
44576
44642
|
displayName: field?.string ?? dimension.fieldName,
|
|
44643
|
+
/**
|
|
44644
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
44645
|
+
* e.g. "stage_id", "create_date:month"
|
|
44646
|
+
*/
|
|
44577
44647
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
44648
|
+
/**
|
|
44649
|
+
* Get the name of the field of the dimension
|
|
44650
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
44651
|
+
*/
|
|
44578
44652
|
fieldName: dimension.fieldName,
|
|
44653
|
+
/**
|
|
44654
|
+
* Get the aggregate operator of the dimension
|
|
44655
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
44656
|
+
*/
|
|
44579
44657
|
granularity,
|
|
44658
|
+
/**
|
|
44659
|
+
* Get the type of the field of the dimension
|
|
44660
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
44661
|
+
*/
|
|
44580
44662
|
type: field?.isCustomField ? "custom" : type,
|
|
44581
44663
|
order: dimension.order,
|
|
44582
44664
|
isValid: !!field,
|
|
@@ -45722,6 +45804,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
45722
45804
|
function getFirstPivotFunction(compiledFormula, getters) {
|
|
45723
45805
|
return compiledFormula.getFunctionsFromTokens(PIVOT_FUNCTIONS, getters)[0];
|
|
45724
45806
|
}
|
|
45807
|
+
function getPivotFunctions(compiledFormula, getters) {
|
|
45808
|
+
return compiledFormula.getFunctionsFromTokens(PIVOT_FUNCTIONS, getters);
|
|
45809
|
+
}
|
|
45725
45810
|
/**
|
|
45726
45811
|
* Parse a spreadsheet formula and detect the number of PIVOT functions that are
|
|
45727
45812
|
* present in the given formula.
|
|
@@ -45798,6 +45883,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
45798
45883
|
//#endregion
|
|
45799
45884
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
45800
45885
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
45886
|
+
pivotId;
|
|
45887
|
+
updateMode;
|
|
45801
45888
|
mutators = [
|
|
45802
45889
|
"reset",
|
|
45803
45890
|
"deferUpdates",
|
|
@@ -60109,6 +60196,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60109
60196
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
60110
60197
|
}
|
|
60111
60198
|
var CompilationParametersBuilder = class {
|
|
60199
|
+
getters;
|
|
60200
|
+
computeCell;
|
|
60112
60201
|
evalContext;
|
|
60113
60202
|
rangeCache = {};
|
|
60114
60203
|
constructor(context, getters, computeCell) {
|
|
@@ -61055,6 +61144,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61055
61144
|
}));
|
|
61056
61145
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
61057
61146
|
var Evaluator = class {
|
|
61147
|
+
context;
|
|
61058
61148
|
getters;
|
|
61059
61149
|
compilationParams;
|
|
61060
61150
|
evaluatedCells = new PositionMap();
|
|
@@ -63445,6 +63535,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63445
63535
|
"getFirstPivotFunction",
|
|
63446
63536
|
"getPivotCellSortDirection",
|
|
63447
63537
|
"getPivotIdFromPosition",
|
|
63538
|
+
"getPivotIdsFromPosition",
|
|
63448
63539
|
"getPivotCellFromPosition",
|
|
63449
63540
|
"generateNewCalculatedMeasureName",
|
|
63450
63541
|
"isPivotUnused",
|
|
@@ -63504,37 +63595,52 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63504
63595
|
}
|
|
63505
63596
|
}
|
|
63506
63597
|
/**
|
|
63507
|
-
* Get the id of the pivot at the given position. Returns undefined if there
|
|
63598
|
+
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
63508
63599
|
* is no pivot at this position
|
|
63509
63600
|
*/
|
|
63510
63601
|
getPivotIdFromPosition(position) {
|
|
63602
|
+
return this.getPivotIdsFromPosition(position)[0];
|
|
63603
|
+
}
|
|
63604
|
+
/**
|
|
63605
|
+
* Get all of the ids of the pivot present in the formula at the given position.
|
|
63606
|
+
*/
|
|
63607
|
+
getPivotIdsFromPosition(position) {
|
|
63511
63608
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
63512
|
-
if (cell && cell.isFormula)
|
|
63513
|
-
|
|
63514
|
-
|
|
63515
|
-
|
|
63516
|
-
|
|
63517
|
-
|
|
63518
|
-
|
|
63609
|
+
if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
|
|
63610
|
+
return [];
|
|
63611
|
+
}
|
|
63612
|
+
getPivotIdsFromFormula(sheetId, formula) {
|
|
63613
|
+
return this.getPivotFunctions(sheetId, formula).map((pivotFunction) => {
|
|
63614
|
+
const pivotId = pivotFunction.args[0]?.toString();
|
|
63615
|
+
return pivotId && this.getters.getPivotId(pivotId);
|
|
63616
|
+
}).filter(isDefined);
|
|
63519
63617
|
}
|
|
63520
63618
|
isSpillPivotFormula(position) {
|
|
63521
63619
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
63522
63620
|
if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula)?.functionName === "PIVOT";
|
|
63523
63621
|
return false;
|
|
63524
63622
|
}
|
|
63525
|
-
|
|
63526
|
-
const
|
|
63527
|
-
if (!
|
|
63528
|
-
const
|
|
63529
|
-
|
|
63530
|
-
functionName,
|
|
63531
|
-
|
|
63623
|
+
getPivotFunctions(sheetId, formula) {
|
|
63624
|
+
const pivotFunctions = getPivotFunctions(formula, this.getters);
|
|
63625
|
+
if (!pivotFunctions.length) return [];
|
|
63626
|
+
const evaluatedPivotFunctions = [];
|
|
63627
|
+
for (const pivotFunction of pivotFunctions) {
|
|
63628
|
+
const { functionName, args } = pivotFunction;
|
|
63629
|
+
const evaluatedArgs = args.map((argAst) => {
|
|
63532
63630
|
if (argAst.type === "EMPTY") return;
|
|
63533
63631
|
else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
|
|
63534
63632
|
const argsString = astToFormula(argAst);
|
|
63535
63633
|
return this.getters.evaluateFormula(sheetId, argsString);
|
|
63536
|
-
})
|
|
63537
|
-
|
|
63634
|
+
});
|
|
63635
|
+
evaluatedPivotFunctions.push({
|
|
63636
|
+
functionName,
|
|
63637
|
+
args: evaluatedArgs
|
|
63638
|
+
});
|
|
63639
|
+
}
|
|
63640
|
+
return evaluatedPivotFunctions;
|
|
63641
|
+
}
|
|
63642
|
+
getFirstPivotFunction(sheetId, formula) {
|
|
63643
|
+
return this.getPivotFunctions(sheetId, formula)[0];
|
|
63538
63644
|
}
|
|
63539
63645
|
/**
|
|
63540
63646
|
* Returns the domain args of a pivot formula from a position.
|
|
@@ -63640,8 +63746,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63640
63746
|
const unusedPivots = new Set(this.getters.getPivotIds());
|
|
63641
63747
|
for (const sheetId of this.getters.getSheetIds()) for (const cell of this.getters.getCells(sheetId)) {
|
|
63642
63748
|
const position = this.getters.getCellPosition(cell.id);
|
|
63643
|
-
const
|
|
63644
|
-
|
|
63749
|
+
const pivotIds = this.getPivotIdsFromPosition(position);
|
|
63750
|
+
for (const pivotId of pivotIds) {
|
|
63645
63751
|
unusedPivots.delete(pivotId);
|
|
63646
63752
|
if (!unusedPivots.size) {
|
|
63647
63753
|
this.unusedPivotsInFormulas = [];
|
|
@@ -63649,6 +63755,21 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63649
63755
|
}
|
|
63650
63756
|
}
|
|
63651
63757
|
}
|
|
63758
|
+
for (const pivotId of this.getters.getPivotIds()) {
|
|
63759
|
+
const pivot = this.getters.getPivot(pivotId);
|
|
63760
|
+
for (const measure of pivot.definition.measures) if (measure.computedBy) {
|
|
63761
|
+
const { sheetId } = measure.computedBy;
|
|
63762
|
+
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
63763
|
+
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
63764
|
+
for (const relatedPivotId of relatedPivotIds) {
|
|
63765
|
+
unusedPivots.delete(relatedPivotId);
|
|
63766
|
+
if (!unusedPivots.size) {
|
|
63767
|
+
this.unusedPivotsInFormulas = [];
|
|
63768
|
+
return [];
|
|
63769
|
+
}
|
|
63770
|
+
}
|
|
63771
|
+
}
|
|
63772
|
+
}
|
|
63652
63773
|
this.unusedPivotsInFormulas = [...unusedPivots];
|
|
63653
63774
|
return this.unusedPivotsInFormulas;
|
|
63654
63775
|
}
|
|
@@ -63687,6 +63808,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63687
63808
|
//#endregion
|
|
63688
63809
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
63689
63810
|
var ClipboardHandler = class {
|
|
63811
|
+
getters;
|
|
63812
|
+
dispatch;
|
|
63690
63813
|
constructor(getters, dispatch) {
|
|
63691
63814
|
this.getters = getters;
|
|
63692
63815
|
this.dispatch = dispatch;
|
|
@@ -65981,6 +66104,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65981
66104
|
//#endregion
|
|
65982
66105
|
//#region src/collaborative/revisions.ts
|
|
65983
66106
|
var Revision = class {
|
|
66107
|
+
rootCommand;
|
|
66108
|
+
timestamp;
|
|
65984
66109
|
id;
|
|
65985
66110
|
clientId;
|
|
65986
66111
|
_commands = [];
|
|
@@ -66017,6 +66142,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
66017
66142
|
//#region src/collaborative/session.ts
|
|
66018
66143
|
var ClientDisconnectedError = class extends Error {};
|
|
66019
66144
|
var Session = class extends EventBus {
|
|
66145
|
+
revisions;
|
|
66146
|
+
transportService;
|
|
66147
|
+
serverRevisionId;
|
|
66020
66148
|
/**
|
|
66021
66149
|
* Positions of the others client.
|
|
66022
66150
|
*/
|
|
@@ -69596,6 +69724,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
69596
69724
|
//#endregion
|
|
69597
69725
|
//#region src/helpers/internal_viewport.ts
|
|
69598
69726
|
var InternalViewport = class {
|
|
69727
|
+
getters;
|
|
69728
|
+
sheetId;
|
|
69729
|
+
boundaries;
|
|
69599
69730
|
top;
|
|
69600
69731
|
bottom;
|
|
69601
69732
|
left;
|
|
@@ -74406,6 +74537,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74406
74537
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
74407
74538
|
}
|
|
74408
74539
|
var WebClipboardWrapper = class {
|
|
74540
|
+
clipboard;
|
|
74409
74541
|
constructor(clipboard) {
|
|
74410
74542
|
this.clipboard = clipboard;
|
|
74411
74543
|
}
|
|
@@ -74677,6 +74809,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74677
74809
|
//#endregion
|
|
74678
74810
|
//#region src/collaborative/readonly_transport_filter.ts
|
|
74679
74811
|
var ReadonlyTransportFilter = class {
|
|
74812
|
+
transportService;
|
|
74680
74813
|
constructor(transportService) {
|
|
74681
74814
|
this.transportService = transportService;
|
|
74682
74815
|
}
|
|
@@ -74708,6 +74841,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74708
74841
|
* @param operations initial operations
|
|
74709
74842
|
*/
|
|
74710
74843
|
var Branch = class Branch {
|
|
74844
|
+
buildTransformation;
|
|
74845
|
+
operations;
|
|
74711
74846
|
constructor(buildTransformation, operations = []) {
|
|
74712
74847
|
this.buildTransformation = buildTransformation;
|
|
74713
74848
|
this.operations = operations;
|
|
@@ -74824,6 +74959,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74824
74959
|
* to revert it).
|
|
74825
74960
|
*/
|
|
74826
74961
|
var Operation = class {
|
|
74962
|
+
id;
|
|
74963
|
+
data;
|
|
74827
74964
|
constructor(id, data) {
|
|
74828
74965
|
this.id = id;
|
|
74829
74966
|
this.data = data;
|
|
@@ -74833,6 +74970,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74833
74970
|
}
|
|
74834
74971
|
};
|
|
74835
74972
|
var LazyOperation = class LazyOperation {
|
|
74973
|
+
id;
|
|
74974
|
+
lazyData;
|
|
74836
74975
|
constructor(id, lazyData) {
|
|
74837
74976
|
this.id = id;
|
|
74838
74977
|
this.lazyData = lazyData;
|
|
@@ -74858,6 +74997,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74858
74997
|
* ```
|
|
74859
74998
|
*/
|
|
74860
74999
|
var OperationSequence = class OperationSequence {
|
|
75000
|
+
operations;
|
|
74861
75001
|
constructor(operations) {
|
|
74862
75002
|
this.operations = operations;
|
|
74863
75003
|
}
|
|
@@ -74933,6 +75073,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74933
75073
|
*
|
|
74934
75074
|
*/
|
|
74935
75075
|
var Tree = class {
|
|
75076
|
+
buildTransformation;
|
|
74936
75077
|
branches;
|
|
74937
75078
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
74938
75079
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -75747,6 +75888,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
75747
75888
|
* with the new selected anchor
|
|
75748
75889
|
*/
|
|
75749
75890
|
var SelectionStreamProcessorImpl = class {
|
|
75891
|
+
getters;
|
|
75750
75892
|
stream;
|
|
75751
75893
|
/**
|
|
75752
75894
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -81564,8 +81706,8 @@ exports.stores = stores;
|
|
|
81564
81706
|
exports.tokenColors = tokenColors;
|
|
81565
81707
|
exports.tokenize = tokenize;
|
|
81566
81708
|
|
|
81567
|
-
__info__.version = "19.2.
|
|
81568
|
-
__info__.date = "2026-05-
|
|
81569
|
-
__info__.hash = "
|
|
81709
|
+
__info__.version = "19.2.14";
|
|
81710
|
+
__info__.date = "2026-05-27T05:57:14.898Z";
|
|
81711
|
+
__info__.hash = "96730cd";
|
|
81570
81712
|
|
|
81571
81713
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|