@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
|
import { App, Component, blockDom, markRaw, onMounted, onPatched, onWillPatch, onWillStart, onWillUnmount, onWillUpdateProps, status, toRaw, useChildSubEnv, useComponent, useEffect, useEnv, useExternalListener, useRef, useState, useSubEnv, whenReady, xml } from "@odoo/owl";
|
|
@@ -2061,6 +2061,7 @@ var DependencyContainer = class extends EventBus {
|
|
|
2061
2061
|
}
|
|
2062
2062
|
};
|
|
2063
2063
|
var StoreFactory = class {
|
|
2064
|
+
get;
|
|
2064
2065
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
2065
2066
|
constructor(get) {
|
|
2066
2067
|
this.get = get;
|
|
@@ -2105,6 +2106,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
2105
2106
|
return MetaStore;
|
|
2106
2107
|
}
|
|
2107
2108
|
var DisposableStore = class {
|
|
2109
|
+
get;
|
|
2108
2110
|
disposeCallbacks = [];
|
|
2109
2111
|
constructor(get) {
|
|
2110
2112
|
this.get = get;
|
|
@@ -2860,6 +2862,7 @@ function getAlternatingColorsPalette(quantity) {
|
|
|
2860
2862
|
else return ALTERNATING_COLORS_XL;
|
|
2861
2863
|
}
|
|
2862
2864
|
var ColorGenerator = class {
|
|
2865
|
+
preferredColors;
|
|
2863
2866
|
currentColorIndex = 0;
|
|
2864
2867
|
palette;
|
|
2865
2868
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -3578,6 +3581,7 @@ const _t = function(s, ...values) {
|
|
|
3578
3581
|
return sprintf(_translate(s), ...values);
|
|
3579
3582
|
};
|
|
3580
3583
|
var LazyTranslatedString = class extends String {
|
|
3584
|
+
values;
|
|
3581
3585
|
constructor(str, values) {
|
|
3582
3586
|
super(str);
|
|
3583
3587
|
this.values = values;
|
|
@@ -3607,6 +3611,8 @@ const CellErrorType = {
|
|
|
3607
3611
|
};
|
|
3608
3612
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3609
3613
|
var EvaluationError = class {
|
|
3614
|
+
message;
|
|
3615
|
+
value;
|
|
3610
3616
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3611
3617
|
this.message = message;
|
|
3612
3618
|
this.value = value;
|
|
@@ -3639,6 +3645,7 @@ var UnknownFunctionError = class extends EvaluationError {
|
|
|
3639
3645
|
}
|
|
3640
3646
|
};
|
|
3641
3647
|
var SplillBlockedError = class extends EvaluationError {
|
|
3648
|
+
errorOriginPosition;
|
|
3642
3649
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
3643
3650
|
super(message, CellErrorType.SpilledBlocked);
|
|
3644
3651
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -6476,8 +6483,13 @@ function getApplyRangeChangeAddColRow(cmd) {
|
|
|
6476
6483
|
changeType: "NONE",
|
|
6477
6484
|
range
|
|
6478
6485
|
};
|
|
6486
|
+
const isUnboundedAtEnd = range.unboundedZone[end] === void 0;
|
|
6487
|
+
if (isUnboundedAtEnd && !range.unboundedZone.hasHeader) return {
|
|
6488
|
+
changeType: "RESIZE",
|
|
6489
|
+
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
6490
|
+
};
|
|
6479
6491
|
if (cmd.position === "after") {
|
|
6480
|
-
if (range.zone[start] <= cmd.base && cmd.base < range.zone[end]) return {
|
|
6492
|
+
if (range.zone[start] <= cmd.base && (cmd.base < range.zone[end] || isUnboundedAtEnd)) return {
|
|
6481
6493
|
changeType: "RESIZE",
|
|
6482
6494
|
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
6483
6495
|
};
|
|
@@ -7421,6 +7433,10 @@ const FORCE_DEFAULT_ARGS_FUNCTIONS = {
|
|
|
7421
7433
|
ROUNDDOWN: [{
|
|
7422
7434
|
type: "NUMBER",
|
|
7423
7435
|
value: 0
|
|
7436
|
+
}],
|
|
7437
|
+
IFERROR: [{
|
|
7438
|
+
type: "NUMBER",
|
|
7439
|
+
value: 0
|
|
7424
7440
|
}]
|
|
7425
7441
|
};
|
|
7426
7442
|
/**
|
|
@@ -10134,6 +10150,7 @@ function getScorecardConfiguration({ width, height }, runtime) {
|
|
|
10134
10150
|
}, runtime).computeDesign();
|
|
10135
10151
|
}
|
|
10136
10152
|
var ScorecardChartConfigBuilder = class {
|
|
10153
|
+
runtime;
|
|
10137
10154
|
context;
|
|
10138
10155
|
width;
|
|
10139
10156
|
height;
|
|
@@ -16213,6 +16230,10 @@ var GaugeChartComponent = class extends Component {
|
|
|
16213
16230
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
16214
16231
|
*/
|
|
16215
16232
|
var Animation = class {
|
|
16233
|
+
startValue;
|
|
16234
|
+
endValue;
|
|
16235
|
+
duration;
|
|
16236
|
+
callback;
|
|
16216
16237
|
startTime = void 0;
|
|
16217
16238
|
animationFrameId = null;
|
|
16218
16239
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -16679,6 +16700,11 @@ var Popover = class extends Component {
|
|
|
16679
16700
|
}
|
|
16680
16701
|
};
|
|
16681
16702
|
var PopoverPositionContext = class {
|
|
16703
|
+
anchorRect;
|
|
16704
|
+
containerRect;
|
|
16705
|
+
propsMaxSize;
|
|
16706
|
+
spreadsheetOffset;
|
|
16707
|
+
lastPosition;
|
|
16682
16708
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
16683
16709
|
this.anchorRect = anchorRect;
|
|
16684
16710
|
this.containerRect = containerRect;
|
|
@@ -25783,6 +25809,7 @@ for (const category of categories) {
|
|
|
25783
25809
|
* Represent a raw XML string
|
|
25784
25810
|
*/
|
|
25785
25811
|
var XMLString = class {
|
|
25812
|
+
xmlString;
|
|
25786
25813
|
/**
|
|
25787
25814
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
25788
25815
|
*/
|
|
@@ -34021,6 +34048,7 @@ var AbstractComposerStore = class extends SpreadsheetStore {
|
|
|
34021
34048
|
//#endregion
|
|
34022
34049
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
34023
34050
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
34051
|
+
args;
|
|
34024
34052
|
constructor(get, args) {
|
|
34025
34053
|
super(get);
|
|
34026
34054
|
this.args = args;
|
|
@@ -34924,6 +34952,7 @@ var DOMDndHelper = class {
|
|
|
34924
34952
|
}
|
|
34925
34953
|
};
|
|
34926
34954
|
var ContainerWrapper = class {
|
|
34955
|
+
el;
|
|
34927
34956
|
constructor(el) {
|
|
34928
34957
|
this.el = el;
|
|
34929
34958
|
}
|
|
@@ -34995,6 +35024,10 @@ var FocusStore = class {
|
|
|
34995
35024
|
* This plugin handles this internal state.
|
|
34996
35025
|
*/
|
|
34997
35026
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
35027
|
+
initialRanges;
|
|
35028
|
+
inputHasSingleRange;
|
|
35029
|
+
colors;
|
|
35030
|
+
disabledRanges;
|
|
34998
35031
|
mutators = [
|
|
34999
35032
|
"resetWithRanges",
|
|
35000
35033
|
"focusById",
|
|
@@ -43088,6 +43121,8 @@ var MoreFormatsPanel = class extends Component {
|
|
|
43088
43121
|
//#endregion
|
|
43089
43122
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
43090
43123
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
43124
|
+
pivotId;
|
|
43125
|
+
initialMeasure;
|
|
43091
43126
|
mutators = [
|
|
43092
43127
|
"cancelMeasureDisplayEdition",
|
|
43093
43128
|
"updateMeasureDisplayType",
|
|
@@ -43279,7 +43314,7 @@ function getVisiblePivotCellPositions(getters, pivotId) {
|
|
|
43279
43314
|
col,
|
|
43280
43315
|
row
|
|
43281
43316
|
};
|
|
43282
|
-
if (
|
|
43317
|
+
if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
|
|
43283
43318
|
}
|
|
43284
43319
|
return positions;
|
|
43285
43320
|
}
|
|
@@ -43570,6 +43605,7 @@ var PivotDimensionOrder = class extends Component {
|
|
|
43570
43605
|
//#endregion
|
|
43571
43606
|
//#region src/formulas/code_builder.ts
|
|
43572
43607
|
var FunctionCodeBuilder = class {
|
|
43608
|
+
scope;
|
|
43573
43609
|
code = "";
|
|
43574
43610
|
constructor(scope = new Scope()) {
|
|
43575
43611
|
this.scope = scope;
|
|
@@ -43585,6 +43621,8 @@ var FunctionCodeBuilder = class {
|
|
|
43585
43621
|
}
|
|
43586
43622
|
};
|
|
43587
43623
|
var FunctionCodeImpl = class {
|
|
43624
|
+
scope;
|
|
43625
|
+
returnExpression;
|
|
43588
43626
|
code;
|
|
43589
43627
|
constructor(scope, code, returnExpression) {
|
|
43590
43628
|
this.scope = scope;
|
|
@@ -43667,6 +43705,13 @@ const collator = new Intl.Collator("en", { sensitivity: "accent" });
|
|
|
43667
43705
|
* 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).
|
|
43668
43706
|
* */
|
|
43669
43707
|
var CompiledFormula = class CompiledFormula {
|
|
43708
|
+
sheetId;
|
|
43709
|
+
tokens;
|
|
43710
|
+
literalValues;
|
|
43711
|
+
symbols;
|
|
43712
|
+
isBadExpression;
|
|
43713
|
+
normalizedFormula;
|
|
43714
|
+
execute;
|
|
43670
43715
|
rangeDependencies;
|
|
43671
43716
|
hasDependencies;
|
|
43672
43717
|
constructor(sheetId, tokens, literalValues, symbols, dependencies, isBadExpression, normalizedFormula, execute) {
|
|
@@ -44551,13 +44596,30 @@ var PivotRuntimeDefinition = class {
|
|
|
44551
44596
|
break;
|
|
44552
44597
|
}
|
|
44553
44598
|
return {
|
|
44599
|
+
/**
|
|
44600
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
44601
|
+
*/
|
|
44554
44602
|
id: measure.id,
|
|
44603
|
+
/**
|
|
44604
|
+
* Display name of the measure
|
|
44605
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
44606
|
+
*/
|
|
44555
44607
|
get displayName() {
|
|
44556
44608
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
44557
44609
|
},
|
|
44558
44610
|
userDefinedName: measure.userDefinedName,
|
|
44611
|
+
/**
|
|
44612
|
+
* Get the name of the field of the measure
|
|
44613
|
+
*/
|
|
44559
44614
|
fieldName,
|
|
44615
|
+
/**
|
|
44616
|
+
* Get the aggregator of the measure
|
|
44617
|
+
*/
|
|
44560
44618
|
aggregator,
|
|
44619
|
+
/**
|
|
44620
|
+
* Get the type of the measure field
|
|
44621
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
44622
|
+
*/
|
|
44561
44623
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
44562
44624
|
isValid,
|
|
44563
44625
|
isHidden: measure.isHidden,
|
|
@@ -44571,10 +44633,30 @@ var PivotRuntimeDefinition = class {
|
|
|
44571
44633
|
const type = field?.type ?? "integer";
|
|
44572
44634
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
44573
44635
|
return {
|
|
44636
|
+
/**
|
|
44637
|
+
* Get the display name of the dimension
|
|
44638
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
44639
|
+
*/
|
|
44574
44640
|
displayName: field?.string ?? dimension.fieldName,
|
|
44641
|
+
/**
|
|
44642
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
44643
|
+
* e.g. "stage_id", "create_date:month"
|
|
44644
|
+
*/
|
|
44575
44645
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
44646
|
+
/**
|
|
44647
|
+
* Get the name of the field of the dimension
|
|
44648
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
44649
|
+
*/
|
|
44576
44650
|
fieldName: dimension.fieldName,
|
|
44651
|
+
/**
|
|
44652
|
+
* Get the aggregate operator of the dimension
|
|
44653
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
44654
|
+
*/
|
|
44577
44655
|
granularity,
|
|
44656
|
+
/**
|
|
44657
|
+
* Get the type of the field of the dimension
|
|
44658
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
44659
|
+
*/
|
|
44578
44660
|
type: field?.isCustomField ? "custom" : type,
|
|
44579
44661
|
order: dimension.order,
|
|
44580
44662
|
isValid: !!field,
|
|
@@ -45720,6 +45802,9 @@ const PIVOT_FUNCTIONS = [
|
|
|
45720
45802
|
function getFirstPivotFunction(compiledFormula, getters) {
|
|
45721
45803
|
return compiledFormula.getFunctionsFromTokens(PIVOT_FUNCTIONS, getters)[0];
|
|
45722
45804
|
}
|
|
45805
|
+
function getPivotFunctions(compiledFormula, getters) {
|
|
45806
|
+
return compiledFormula.getFunctionsFromTokens(PIVOT_FUNCTIONS, getters);
|
|
45807
|
+
}
|
|
45723
45808
|
/**
|
|
45724
45809
|
* Parse a spreadsheet formula and detect the number of PIVOT functions that are
|
|
45725
45810
|
* present in the given formula.
|
|
@@ -45796,6 +45881,8 @@ function extractFormulaIdFromToken(tokenAtCursor) {
|
|
|
45796
45881
|
//#endregion
|
|
45797
45882
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
45798
45883
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
45884
|
+
pivotId;
|
|
45885
|
+
updateMode;
|
|
45799
45886
|
mutators = [
|
|
45800
45887
|
"reset",
|
|
45801
45888
|
"deferUpdates",
|
|
@@ -60107,6 +60194,8 @@ function buildCompilationParameters(context, getters, computeCell) {
|
|
|
60107
60194
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
60108
60195
|
}
|
|
60109
60196
|
var CompilationParametersBuilder = class {
|
|
60197
|
+
getters;
|
|
60198
|
+
computeCell;
|
|
60110
60199
|
evalContext;
|
|
60111
60200
|
rangeCache = {};
|
|
60112
60201
|
constructor(context, getters, computeCell) {
|
|
@@ -61053,6 +61142,7 @@ const ERROR_CYCLE_CELL = Object.freeze(createEvaluatedCell({
|
|
|
61053
61142
|
}));
|
|
61054
61143
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
61055
61144
|
var Evaluator = class {
|
|
61145
|
+
context;
|
|
61056
61146
|
getters;
|
|
61057
61147
|
compilationParams;
|
|
61058
61148
|
evaluatedCells = new PositionMap();
|
|
@@ -63443,6 +63533,7 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63443
63533
|
"getFirstPivotFunction",
|
|
63444
63534
|
"getPivotCellSortDirection",
|
|
63445
63535
|
"getPivotIdFromPosition",
|
|
63536
|
+
"getPivotIdsFromPosition",
|
|
63446
63537
|
"getPivotCellFromPosition",
|
|
63447
63538
|
"generateNewCalculatedMeasureName",
|
|
63448
63539
|
"isPivotUnused",
|
|
@@ -63502,37 +63593,52 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63502
63593
|
}
|
|
63503
63594
|
}
|
|
63504
63595
|
/**
|
|
63505
|
-
* Get the id of the pivot at the given position. Returns undefined if there
|
|
63596
|
+
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
63506
63597
|
* is no pivot at this position
|
|
63507
63598
|
*/
|
|
63508
63599
|
getPivotIdFromPosition(position) {
|
|
63600
|
+
return this.getPivotIdsFromPosition(position)[0];
|
|
63601
|
+
}
|
|
63602
|
+
/**
|
|
63603
|
+
* Get all of the ids of the pivot present in the formula at the given position.
|
|
63604
|
+
*/
|
|
63605
|
+
getPivotIdsFromPosition(position) {
|
|
63509
63606
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
63510
|
-
if (cell && cell.isFormula)
|
|
63511
|
-
|
|
63512
|
-
|
|
63513
|
-
|
|
63514
|
-
|
|
63515
|
-
|
|
63516
|
-
|
|
63607
|
+
if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
|
|
63608
|
+
return [];
|
|
63609
|
+
}
|
|
63610
|
+
getPivotIdsFromFormula(sheetId, formula) {
|
|
63611
|
+
return this.getPivotFunctions(sheetId, formula).map((pivotFunction) => {
|
|
63612
|
+
const pivotId = pivotFunction.args[0]?.toString();
|
|
63613
|
+
return pivotId && this.getters.getPivotId(pivotId);
|
|
63614
|
+
}).filter(isDefined);
|
|
63517
63615
|
}
|
|
63518
63616
|
isSpillPivotFormula(position) {
|
|
63519
63617
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
63520
63618
|
if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula)?.functionName === "PIVOT";
|
|
63521
63619
|
return false;
|
|
63522
63620
|
}
|
|
63523
|
-
|
|
63524
|
-
const
|
|
63525
|
-
if (!
|
|
63526
|
-
const
|
|
63527
|
-
|
|
63528
|
-
functionName,
|
|
63529
|
-
|
|
63621
|
+
getPivotFunctions(sheetId, formula) {
|
|
63622
|
+
const pivotFunctions = getPivotFunctions(formula, this.getters);
|
|
63623
|
+
if (!pivotFunctions.length) return [];
|
|
63624
|
+
const evaluatedPivotFunctions = [];
|
|
63625
|
+
for (const pivotFunction of pivotFunctions) {
|
|
63626
|
+
const { functionName, args } = pivotFunction;
|
|
63627
|
+
const evaluatedArgs = args.map((argAst) => {
|
|
63530
63628
|
if (argAst.type === "EMPTY") return;
|
|
63531
63629
|
else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
|
|
63532
63630
|
const argsString = astToFormula(argAst);
|
|
63533
63631
|
return this.getters.evaluateFormula(sheetId, argsString);
|
|
63534
|
-
})
|
|
63535
|
-
|
|
63632
|
+
});
|
|
63633
|
+
evaluatedPivotFunctions.push({
|
|
63634
|
+
functionName,
|
|
63635
|
+
args: evaluatedArgs
|
|
63636
|
+
});
|
|
63637
|
+
}
|
|
63638
|
+
return evaluatedPivotFunctions;
|
|
63639
|
+
}
|
|
63640
|
+
getFirstPivotFunction(sheetId, formula) {
|
|
63641
|
+
return this.getPivotFunctions(sheetId, formula)[0];
|
|
63536
63642
|
}
|
|
63537
63643
|
/**
|
|
63538
63644
|
* Returns the domain args of a pivot formula from a position.
|
|
@@ -63638,8 +63744,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63638
63744
|
const unusedPivots = new Set(this.getters.getPivotIds());
|
|
63639
63745
|
for (const sheetId of this.getters.getSheetIds()) for (const cell of this.getters.getCells(sheetId)) {
|
|
63640
63746
|
const position = this.getters.getCellPosition(cell.id);
|
|
63641
|
-
const
|
|
63642
|
-
|
|
63747
|
+
const pivotIds = this.getPivotIdsFromPosition(position);
|
|
63748
|
+
for (const pivotId of pivotIds) {
|
|
63643
63749
|
unusedPivots.delete(pivotId);
|
|
63644
63750
|
if (!unusedPivots.size) {
|
|
63645
63751
|
this.unusedPivotsInFormulas = [];
|
|
@@ -63647,6 +63753,21 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63647
63753
|
}
|
|
63648
63754
|
}
|
|
63649
63755
|
}
|
|
63756
|
+
for (const pivotId of this.getters.getPivotIds()) {
|
|
63757
|
+
const pivot = this.getters.getPivot(pivotId);
|
|
63758
|
+
for (const measure of pivot.definition.measures) if (measure.computedBy) {
|
|
63759
|
+
const { sheetId } = measure.computedBy;
|
|
63760
|
+
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
63761
|
+
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
63762
|
+
for (const relatedPivotId of relatedPivotIds) {
|
|
63763
|
+
unusedPivots.delete(relatedPivotId);
|
|
63764
|
+
if (!unusedPivots.size) {
|
|
63765
|
+
this.unusedPivotsInFormulas = [];
|
|
63766
|
+
return [];
|
|
63767
|
+
}
|
|
63768
|
+
}
|
|
63769
|
+
}
|
|
63770
|
+
}
|
|
63650
63771
|
this.unusedPivotsInFormulas = [...unusedPivots];
|
|
63651
63772
|
return this.unusedPivotsInFormulas;
|
|
63652
63773
|
}
|
|
@@ -63685,6 +63806,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63685
63806
|
//#endregion
|
|
63686
63807
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
63687
63808
|
var ClipboardHandler = class {
|
|
63809
|
+
getters;
|
|
63810
|
+
dispatch;
|
|
63688
63811
|
constructor(getters, dispatch) {
|
|
63689
63812
|
this.getters = getters;
|
|
63690
63813
|
this.dispatch = dispatch;
|
|
@@ -65979,6 +66102,8 @@ function transformPositionWithMerge(toTransform, executed) {
|
|
|
65979
66102
|
//#endregion
|
|
65980
66103
|
//#region src/collaborative/revisions.ts
|
|
65981
66104
|
var Revision = class {
|
|
66105
|
+
rootCommand;
|
|
66106
|
+
timestamp;
|
|
65982
66107
|
id;
|
|
65983
66108
|
clientId;
|
|
65984
66109
|
_commands = [];
|
|
@@ -66015,6 +66140,9 @@ var Revision = class {
|
|
|
66015
66140
|
//#region src/collaborative/session.ts
|
|
66016
66141
|
var ClientDisconnectedError = class extends Error {};
|
|
66017
66142
|
var Session = class extends EventBus {
|
|
66143
|
+
revisions;
|
|
66144
|
+
transportService;
|
|
66145
|
+
serverRevisionId;
|
|
66018
66146
|
/**
|
|
66019
66147
|
* Positions of the others client.
|
|
66020
66148
|
*/
|
|
@@ -69594,6 +69722,9 @@ var GridSelectionPlugin = class extends UIPlugin {
|
|
|
69594
69722
|
//#endregion
|
|
69595
69723
|
//#region src/helpers/internal_viewport.ts
|
|
69596
69724
|
var InternalViewport = class {
|
|
69725
|
+
getters;
|
|
69726
|
+
sheetId;
|
|
69727
|
+
boundaries;
|
|
69597
69728
|
top;
|
|
69598
69729
|
bottom;
|
|
69599
69730
|
left;
|
|
@@ -74404,6 +74535,7 @@ function instantiateClipboard() {
|
|
|
74404
74535
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
74405
74536
|
}
|
|
74406
74537
|
var WebClipboardWrapper = class {
|
|
74538
|
+
clipboard;
|
|
74407
74539
|
constructor(clipboard) {
|
|
74408
74540
|
this.clipboard = clipboard;
|
|
74409
74541
|
}
|
|
@@ -74675,6 +74807,7 @@ var Spreadsheet = class extends Component {
|
|
|
74675
74807
|
//#endregion
|
|
74676
74808
|
//#region src/collaborative/readonly_transport_filter.ts
|
|
74677
74809
|
var ReadonlyTransportFilter = class {
|
|
74810
|
+
transportService;
|
|
74678
74811
|
constructor(transportService) {
|
|
74679
74812
|
this.transportService = transportService;
|
|
74680
74813
|
}
|
|
@@ -74706,6 +74839,8 @@ function inverseCommand(cmd) {
|
|
|
74706
74839
|
* @param operations initial operations
|
|
74707
74840
|
*/
|
|
74708
74841
|
var Branch = class Branch {
|
|
74842
|
+
buildTransformation;
|
|
74843
|
+
operations;
|
|
74709
74844
|
constructor(buildTransformation, operations = []) {
|
|
74710
74845
|
this.buildTransformation = buildTransformation;
|
|
74711
74846
|
this.operations = operations;
|
|
@@ -74822,6 +74957,8 @@ var Branch = class Branch {
|
|
|
74822
74957
|
* to revert it).
|
|
74823
74958
|
*/
|
|
74824
74959
|
var Operation = class {
|
|
74960
|
+
id;
|
|
74961
|
+
data;
|
|
74825
74962
|
constructor(id, data) {
|
|
74826
74963
|
this.id = id;
|
|
74827
74964
|
this.data = data;
|
|
@@ -74831,6 +74968,8 @@ var Operation = class {
|
|
|
74831
74968
|
}
|
|
74832
74969
|
};
|
|
74833
74970
|
var LazyOperation = class LazyOperation {
|
|
74971
|
+
id;
|
|
74972
|
+
lazyData;
|
|
74834
74973
|
constructor(id, lazyData) {
|
|
74835
74974
|
this.id = id;
|
|
74836
74975
|
this.lazyData = lazyData;
|
|
@@ -74856,6 +74995,7 @@ var LazyOperation = class LazyOperation {
|
|
|
74856
74995
|
* ```
|
|
74857
74996
|
*/
|
|
74858
74997
|
var OperationSequence = class OperationSequence {
|
|
74998
|
+
operations;
|
|
74859
74999
|
constructor(operations) {
|
|
74860
75000
|
this.operations = operations;
|
|
74861
75001
|
}
|
|
@@ -74931,6 +75071,7 @@ var OperationSequence = class OperationSequence {
|
|
|
74931
75071
|
*
|
|
74932
75072
|
*/
|
|
74933
75073
|
var Tree = class {
|
|
75074
|
+
buildTransformation;
|
|
74934
75075
|
branches;
|
|
74935
75076
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
74936
75077
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -75745,6 +75886,7 @@ var EventStream = class {
|
|
|
75745
75886
|
* with the new selected anchor
|
|
75746
75887
|
*/
|
|
75747
75888
|
var SelectionStreamProcessorImpl = class {
|
|
75889
|
+
getters;
|
|
75748
75890
|
stream;
|
|
75749
75891
|
/**
|
|
75750
75892
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -81504,6 +81646,6 @@ const chartHelpers = {
|
|
|
81504
81646
|
//#endregion
|
|
81505
81647
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CompiledFormula, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, canExecuteInReadonly, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, isCoreCommand, isSheetDependent, iterateAstNodes, links, load, lockedSheetAllowedCommands, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
81506
81648
|
|
|
81507
|
-
__info__.version = "19.2.
|
|
81508
|
-
__info__.date = "2026-05-
|
|
81509
|
-
__info__.hash = "
|
|
81649
|
+
__info__.version = "19.2.14";
|
|
81650
|
+
__info__.date = "2026-05-27T05:57:14.898Z";
|
|
81651
|
+
__info__.hash = "96730cd";
|