@odoo/o-spreadsheet 18.2.53 → 18.2.55
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 +164 -29
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +164 -29
- package/dist/o_spreadsheet.iife.js +164 -29
- package/dist/o_spreadsheet.iife.min.js +296 -296
- package/dist/o_spreadsheet.xml +5 -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 18.2.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.2.55
|
|
6
|
+
* @date 2026-06-06T06:20:23.893Z
|
|
7
|
+
* @hash 57b568a
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -1347,6 +1347,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
1347
1347
|
else return ALTERNATING_COLORS_XL;
|
|
1348
1348
|
}
|
|
1349
1349
|
var ColorGenerator = class {
|
|
1350
|
+
preferredColors;
|
|
1350
1351
|
currentColorIndex = 0;
|
|
1351
1352
|
palette;
|
|
1352
1353
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -1813,6 +1814,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
1813
1814
|
return sprintf(_translate(s), ...values);
|
|
1814
1815
|
};
|
|
1815
1816
|
var LazyTranslatedString = class extends String {
|
|
1817
|
+
values;
|
|
1816
1818
|
constructor(str, values) {
|
|
1817
1819
|
super(str);
|
|
1818
1820
|
this.values = values;
|
|
@@ -3309,6 +3311,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3309
3311
|
};
|
|
3310
3312
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3311
3313
|
var EvaluationError = class {
|
|
3314
|
+
message;
|
|
3315
|
+
value;
|
|
3312
3316
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3313
3317
|
this.message = message;
|
|
3314
3318
|
this.value = value;
|
|
@@ -3341,6 +3345,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3341
3345
|
}
|
|
3342
3346
|
};
|
|
3343
3347
|
var SplillBlockedError = class extends EvaluationError {
|
|
3348
|
+
errorOriginPosition;
|
|
3344
3349
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
3345
3350
|
super(message, CellErrorType.SpilledBlocked);
|
|
3346
3351
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -4043,6 +4048,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4043
4048
|
//#endregion
|
|
4044
4049
|
//#region src/helpers/format/format_tokenizer.ts
|
|
4045
4050
|
function tokenizeFormat(str) {
|
|
4051
|
+
str = str.replace(/\s/g, " ");
|
|
4046
4052
|
const chars = new TokenizingChars(str);
|
|
4047
4053
|
const result = [];
|
|
4048
4054
|
let currentFormatPart = [];
|
|
@@ -5174,6 +5180,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5174
5180
|
//#endregion
|
|
5175
5181
|
//#region src/helpers/range.ts
|
|
5176
5182
|
var RangeImpl = class RangeImpl {
|
|
5183
|
+
getSheetSize;
|
|
5177
5184
|
_zone;
|
|
5178
5185
|
parts;
|
|
5179
5186
|
invalidXc;
|
|
@@ -5861,6 +5868,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5861
5868
|
//#endregion
|
|
5862
5869
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
5863
5870
|
var ClipboardHandler = class {
|
|
5871
|
+
getters;
|
|
5872
|
+
dispatch;
|
|
5864
5873
|
constructor(getters, dispatch) {
|
|
5865
5874
|
this.getters = getters;
|
|
5866
5875
|
this.dispatch = dispatch;
|
|
@@ -8268,6 +8277,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
8268
8277
|
}
|
|
8269
8278
|
};
|
|
8270
8279
|
var StoreFactory = class {
|
|
8280
|
+
get;
|
|
8271
8281
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
8272
8282
|
constructor(get) {
|
|
8273
8283
|
this.get = get;
|
|
@@ -8312,6 +8322,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8312
8322
|
return MetaStore;
|
|
8313
8323
|
}
|
|
8314
8324
|
var DisposableStore = class {
|
|
8325
|
+
get;
|
|
8315
8326
|
disposeCallbacks = [];
|
|
8316
8327
|
constructor(get) {
|
|
8317
8328
|
this.get = get;
|
|
@@ -9455,6 +9466,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
9455
9466
|
}, runtime).computeDesign();
|
|
9456
9467
|
}
|
|
9457
9468
|
var ScorecardChartConfigBuilder = class {
|
|
9469
|
+
runtime;
|
|
9458
9470
|
context;
|
|
9459
9471
|
width;
|
|
9460
9472
|
height;
|
|
@@ -18109,6 +18121,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
18109
18121
|
//#endregion
|
|
18110
18122
|
//#region src/formulas/code_builder.ts
|
|
18111
18123
|
var FunctionCodeBuilder = class {
|
|
18124
|
+
scope;
|
|
18112
18125
|
code = "";
|
|
18113
18126
|
constructor(scope = new Scope()) {
|
|
18114
18127
|
this.scope = scope;
|
|
@@ -18124,6 +18137,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
18124
18137
|
}
|
|
18125
18138
|
};
|
|
18126
18139
|
var FunctionCodeImpl = class {
|
|
18140
|
+
scope;
|
|
18141
|
+
returnExpression;
|
|
18127
18142
|
code;
|
|
18128
18143
|
constructor(scope, code, returnExpression) {
|
|
18129
18144
|
this.scope = scope;
|
|
@@ -18504,6 +18519,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
18504
18519
|
function getFirstPivotFunction(tokens) {
|
|
18505
18520
|
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS)[0];
|
|
18506
18521
|
}
|
|
18522
|
+
function getPivotFunctions(tokens) {
|
|
18523
|
+
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS);
|
|
18524
|
+
}
|
|
18507
18525
|
/**
|
|
18508
18526
|
* Parse a spreadsheet formula and detect the number of PIVOT functions that are
|
|
18509
18527
|
* present in the given formula.
|
|
@@ -19554,6 +19572,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
19554
19572
|
* Represent a raw XML string
|
|
19555
19573
|
*/
|
|
19556
19574
|
var XMLString = class {
|
|
19575
|
+
xmlString;
|
|
19557
19576
|
/**
|
|
19558
19577
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
19559
19578
|
*/
|
|
@@ -19672,6 +19691,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
19672
19691
|
ROUNDDOWN: [{
|
|
19673
19692
|
type: "NUMBER",
|
|
19674
19693
|
value: 0
|
|
19694
|
+
}],
|
|
19695
|
+
IFERROR: [{
|
|
19696
|
+
type: "NUMBER",
|
|
19697
|
+
value: 0
|
|
19675
19698
|
}]
|
|
19676
19699
|
};
|
|
19677
19700
|
/**
|
|
@@ -29587,6 +29610,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29587
29610
|
}
|
|
29588
29611
|
};
|
|
29589
29612
|
var PopoverPositionContext = class {
|
|
29613
|
+
anchorRect;
|
|
29614
|
+
containerRect;
|
|
29615
|
+
propsMaxSize;
|
|
29616
|
+
spreadsheetOffset;
|
|
29590
29617
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset) {
|
|
29591
29618
|
this.anchorRect = anchorRect;
|
|
29592
29619
|
this.containerRect = containerRect;
|
|
@@ -30685,11 +30712,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30685
30712
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
30686
30713
|
};
|
|
30687
30714
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
30688
|
-
const
|
|
30689
|
-
const table = env.model.getters.getTable(position);
|
|
30715
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
30690
30716
|
if (!table) return;
|
|
30691
30717
|
env.model.dispatch("REMOVE_TABLE", {
|
|
30692
|
-
sheetId:
|
|
30718
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
30693
30719
|
target: [table.range.zone]
|
|
30694
30720
|
});
|
|
30695
30721
|
};
|
|
@@ -32625,7 +32651,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32625
32651
|
col,
|
|
32626
32652
|
row
|
|
32627
32653
|
};
|
|
32628
|
-
if (
|
|
32654
|
+
if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
|
|
32629
32655
|
}
|
|
32630
32656
|
return positions;
|
|
32631
32657
|
}
|
|
@@ -33403,6 +33429,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
33403
33429
|
}
|
|
33404
33430
|
};
|
|
33405
33431
|
var ContainerWrapper = class {
|
|
33432
|
+
el;
|
|
33406
33433
|
constructor(el) {
|
|
33407
33434
|
this.el = el;
|
|
33408
33435
|
}
|
|
@@ -33488,6 +33515,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
33488
33515
|
* This plugin handles this internal state.
|
|
33489
33516
|
*/
|
|
33490
33517
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
33518
|
+
initialRanges;
|
|
33519
|
+
inputHasSingleRange;
|
|
33520
|
+
colors;
|
|
33491
33521
|
mutators = [
|
|
33492
33522
|
"resetWithRanges",
|
|
33493
33523
|
"focusById",
|
|
@@ -36400,6 +36430,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
36400
36430
|
//#endregion
|
|
36401
36431
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
36402
36432
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
36433
|
+
args;
|
|
36403
36434
|
constructor(get, args) {
|
|
36404
36435
|
super(get);
|
|
36405
36436
|
this.args = args;
|
|
@@ -39974,6 +40005,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
39974
40005
|
//#endregion
|
|
39975
40006
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
39976
40007
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
40008
|
+
pivotId;
|
|
40009
|
+
initialMeasure;
|
|
39977
40010
|
mutators = [
|
|
39978
40011
|
"cancelMeasureDisplayEdition",
|
|
39979
40012
|
"updateMeasureDisplayType",
|
|
@@ -41012,13 +41045,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
41012
41045
|
} : fields[fieldName];
|
|
41013
41046
|
const aggregator = measure.aggregator;
|
|
41014
41047
|
return {
|
|
41048
|
+
/**
|
|
41049
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
41050
|
+
*/
|
|
41015
41051
|
id: measure.id,
|
|
41052
|
+
/**
|
|
41053
|
+
* Display name of the measure
|
|
41054
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
41055
|
+
*/
|
|
41016
41056
|
get displayName() {
|
|
41017
41057
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
41018
41058
|
},
|
|
41019
41059
|
userDefinedName: measure.userDefinedName,
|
|
41060
|
+
/**
|
|
41061
|
+
* Get the name of the field of the measure
|
|
41062
|
+
*/
|
|
41020
41063
|
fieldName,
|
|
41064
|
+
/**
|
|
41065
|
+
* Get the aggregator of the measure
|
|
41066
|
+
*/
|
|
41021
41067
|
aggregator,
|
|
41068
|
+
/**
|
|
41069
|
+
* Get the type of the measure field
|
|
41070
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
41071
|
+
*/
|
|
41022
41072
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
41023
41073
|
isValid: !!(field || measure.computedBy),
|
|
41024
41074
|
isHidden: measure.isHidden,
|
|
@@ -41032,10 +41082,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
41032
41082
|
const type = field?.type ?? "integer";
|
|
41033
41083
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
41034
41084
|
return {
|
|
41085
|
+
/**
|
|
41086
|
+
* Get the display name of the dimension
|
|
41087
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
41088
|
+
*/
|
|
41035
41089
|
displayName: field?.string ?? dimension.fieldName,
|
|
41090
|
+
/**
|
|
41091
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
41092
|
+
* e.g. "stage_id", "create_date:month"
|
|
41093
|
+
*/
|
|
41036
41094
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
41095
|
+
/**
|
|
41096
|
+
* Get the name of the field of the dimension
|
|
41097
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
41098
|
+
*/
|
|
41037
41099
|
fieldName: dimension.fieldName,
|
|
41100
|
+
/**
|
|
41101
|
+
* Get the aggregate operator of the dimension
|
|
41102
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
41103
|
+
*/
|
|
41038
41104
|
granularity,
|
|
41105
|
+
/**
|
|
41106
|
+
* Get the type of the field of the dimension
|
|
41107
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
41108
|
+
*/
|
|
41039
41109
|
type,
|
|
41040
41110
|
order: dimension.order,
|
|
41041
41111
|
isValid: !!field
|
|
@@ -42075,6 +42145,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
42075
42145
|
//#endregion
|
|
42076
42146
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
42077
42147
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
42148
|
+
pivotId;
|
|
42078
42149
|
mutators = [
|
|
42079
42150
|
"reset",
|
|
42080
42151
|
"deferUpdates",
|
|
@@ -49576,6 +49647,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49576
49647
|
}
|
|
49577
49648
|
};
|
|
49578
49649
|
var FormulaCellWithDependencies = class {
|
|
49650
|
+
id;
|
|
49651
|
+
format;
|
|
49652
|
+
style;
|
|
49653
|
+
sheetId;
|
|
49654
|
+
getRangeString;
|
|
49579
49655
|
isFormula = true;
|
|
49580
49656
|
compiledFormula;
|
|
49581
49657
|
constructor(id, compiledFormula, format, style, dependencies, sheetId, getRangeString) {
|
|
@@ -49610,6 +49686,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49610
49686
|
}
|
|
49611
49687
|
};
|
|
49612
49688
|
var RangeReferenceToken = class {
|
|
49689
|
+
ranges;
|
|
49690
|
+
rangeIndex;
|
|
49691
|
+
sheetId;
|
|
49692
|
+
getRangeString;
|
|
49613
49693
|
type = "REFERENCE";
|
|
49614
49694
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
49615
49695
|
this.ranges = ranges;
|
|
@@ -53506,6 +53586,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53506
53586
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
53507
53587
|
}
|
|
53508
53588
|
var CompilationParametersBuilder = class {
|
|
53589
|
+
getters;
|
|
53590
|
+
computeCell;
|
|
53509
53591
|
evalContext;
|
|
53510
53592
|
rangeCache = {};
|
|
53511
53593
|
constructor(context, getters, computeCell) {
|
|
@@ -53959,6 +54041,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53959
54041
|
* It uses an R-Tree data structure to efficiently find dependent cells.
|
|
53960
54042
|
*/
|
|
53961
54043
|
var FormulaDependencyGraph = class {
|
|
54044
|
+
createEmptyPositionSet;
|
|
53962
54045
|
dependencies = new PositionMap();
|
|
53963
54046
|
rTree;
|
|
53964
54047
|
constructor(createEmptyPositionSet, data = []) {
|
|
@@ -54260,6 +54343,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54260
54343
|
const ERROR_CYCLE_CELL = Object.freeze(createEvaluatedCell(new CircularDependencyError()));
|
|
54261
54344
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
54262
54345
|
var Evaluator = class {
|
|
54346
|
+
context;
|
|
54263
54347
|
getters;
|
|
54264
54348
|
compilationParams;
|
|
54265
54349
|
evaluatedCells = new PositionMap();
|
|
@@ -56242,6 +56326,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56242
56326
|
"getPivot",
|
|
56243
56327
|
"getFirstPivotFunction",
|
|
56244
56328
|
"getPivotIdFromPosition",
|
|
56329
|
+
"getPivotIdsFromPosition",
|
|
56245
56330
|
"getPivotCellFromPosition",
|
|
56246
56331
|
"generateNewCalculatedMeasureName",
|
|
56247
56332
|
"isPivotUnused",
|
|
@@ -56266,9 +56351,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56266
56351
|
this.refreshPivot(cmd.id);
|
|
56267
56352
|
break;
|
|
56268
56353
|
case "ADD_PIVOT":
|
|
56354
|
+
this.unusedPivots?.push(cmd.pivotId);
|
|
56269
56355
|
this.setupPivot(cmd.pivotId);
|
|
56270
56356
|
break;
|
|
56271
56357
|
case "DUPLICATE_PIVOT":
|
|
56358
|
+
this.unusedPivots?.push(cmd.newPivotId);
|
|
56272
56359
|
this.setupPivot(cmd.newPivotId);
|
|
56273
56360
|
break;
|
|
56274
56361
|
case "UPDATE_PIVOT":
|
|
@@ -56299,37 +56386,52 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56299
56386
|
}
|
|
56300
56387
|
}
|
|
56301
56388
|
/**
|
|
56302
|
-
* Get the id of the pivot at the given position. Returns undefined if there
|
|
56389
|
+
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
56303
56390
|
* is no pivot at this position
|
|
56304
56391
|
*/
|
|
56305
56392
|
getPivotIdFromPosition(position) {
|
|
56393
|
+
return this.getPivotIdsFromPosition(position)[0];
|
|
56394
|
+
}
|
|
56395
|
+
/**
|
|
56396
|
+
* Get all of the ids of the pivot present in the formula at the given position.
|
|
56397
|
+
*/
|
|
56398
|
+
getPivotIdsFromPosition(position) {
|
|
56306
56399
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
56307
|
-
if (cell && cell.isFormula)
|
|
56308
|
-
|
|
56309
|
-
|
|
56310
|
-
|
|
56311
|
-
|
|
56312
|
-
|
|
56313
|
-
|
|
56400
|
+
if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
|
|
56401
|
+
return [];
|
|
56402
|
+
}
|
|
56403
|
+
getPivotIdsFromFormula(sheetId, formula) {
|
|
56404
|
+
return this.getPivotFunctions(sheetId, formula.tokens).map((pivotFunction) => {
|
|
56405
|
+
const pivotId = pivotFunction.args[0]?.toString();
|
|
56406
|
+
return pivotId && this.getters.getPivotId(pivotId);
|
|
56407
|
+
}).filter(isDefined);
|
|
56314
56408
|
}
|
|
56315
56409
|
isSpillPivotFormula(position) {
|
|
56316
56410
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
56317
56411
|
if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula.tokens)?.functionName === "PIVOT";
|
|
56318
56412
|
return false;
|
|
56319
56413
|
}
|
|
56320
|
-
|
|
56321
|
-
const
|
|
56322
|
-
if (!
|
|
56323
|
-
const
|
|
56324
|
-
|
|
56325
|
-
functionName,
|
|
56326
|
-
|
|
56414
|
+
getPivotFunctions(sheetId, tokens) {
|
|
56415
|
+
const pivotFunctions = getPivotFunctions(tokens);
|
|
56416
|
+
if (!pivotFunctions.length) return [];
|
|
56417
|
+
const evaluatedPivotFunctions = [];
|
|
56418
|
+
for (const pivotFunction of pivotFunctions) {
|
|
56419
|
+
const { functionName, args } = pivotFunction;
|
|
56420
|
+
const evaluatedArgs = args.map((argAst) => {
|
|
56327
56421
|
if (argAst.type === "EMPTY") return;
|
|
56328
56422
|
else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
|
|
56329
56423
|
const argsString = astToFormula(argAst);
|
|
56330
56424
|
return this.getters.evaluateFormula(sheetId, argsString);
|
|
56331
|
-
})
|
|
56332
|
-
|
|
56425
|
+
});
|
|
56426
|
+
evaluatedPivotFunctions.push({
|
|
56427
|
+
functionName,
|
|
56428
|
+
args: evaluatedArgs
|
|
56429
|
+
});
|
|
56430
|
+
}
|
|
56431
|
+
return evaluatedPivotFunctions;
|
|
56432
|
+
}
|
|
56433
|
+
getFirstPivotFunction(sheetId, tokens) {
|
|
56434
|
+
return this.getPivotFunctions(sheetId, tokens)[0];
|
|
56333
56435
|
}
|
|
56334
56436
|
/**
|
|
56335
56437
|
* Returns the domain args of a pivot formula from a position.
|
|
@@ -56423,8 +56525,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56423
56525
|
const unusedPivots = new Set(this.getters.getPivotIds());
|
|
56424
56526
|
for (const sheetId of this.getters.getSheetIds()) for (const cellId in this.getters.getCells(sheetId)) {
|
|
56425
56527
|
const position = this.getters.getCellPosition(cellId);
|
|
56426
|
-
const
|
|
56427
|
-
|
|
56528
|
+
const pivotIds = this.getPivotIdsFromPosition(position);
|
|
56529
|
+
for (const pivotId of pivotIds) {
|
|
56428
56530
|
unusedPivots.delete(pivotId);
|
|
56429
56531
|
if (!unusedPivots.size) {
|
|
56430
56532
|
this.unusedPivots = [];
|
|
@@ -56432,6 +56534,21 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56432
56534
|
}
|
|
56433
56535
|
}
|
|
56434
56536
|
}
|
|
56537
|
+
for (const pivotId of this.getters.getPivotIds()) {
|
|
56538
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
56539
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
56540
|
+
const { sheetId } = measure.computedBy;
|
|
56541
|
+
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
56542
|
+
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
56543
|
+
for (const relatedPivotId of relatedPivotIds) {
|
|
56544
|
+
unusedPivots.delete(relatedPivotId);
|
|
56545
|
+
if (!unusedPivots.size) {
|
|
56546
|
+
this.unusedPivots = [];
|
|
56547
|
+
return [];
|
|
56548
|
+
}
|
|
56549
|
+
}
|
|
56550
|
+
}
|
|
56551
|
+
}
|
|
56435
56552
|
this.unusedPivots = [...unusedPivots];
|
|
56436
56553
|
return this.unusedPivots;
|
|
56437
56554
|
}
|
|
@@ -57584,6 +57701,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57584
57701
|
//#endregion
|
|
57585
57702
|
//#region src/collaborative/revisions.ts
|
|
57586
57703
|
var Revision = class {
|
|
57704
|
+
rootCommand;
|
|
57705
|
+
timestamp;
|
|
57587
57706
|
id;
|
|
57588
57707
|
clientId;
|
|
57589
57708
|
_commands = [];
|
|
@@ -57620,6 +57739,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57620
57739
|
//#region src/collaborative/session.ts
|
|
57621
57740
|
var ClientDisconnectedError = class extends Error {};
|
|
57622
57741
|
var Session = class extends EventBus {
|
|
57742
|
+
revisions;
|
|
57743
|
+
transportService;
|
|
57744
|
+
serverRevisionId;
|
|
57623
57745
|
/**
|
|
57624
57746
|
* Positions of the others client.
|
|
57625
57747
|
*/
|
|
@@ -61059,6 +61181,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61059
61181
|
//#endregion
|
|
61060
61182
|
//#region src/helpers/internal_viewport.ts
|
|
61061
61183
|
var InternalViewport = class {
|
|
61184
|
+
getters;
|
|
61185
|
+
sheetId;
|
|
61186
|
+
boundaries;
|
|
61062
61187
|
top;
|
|
61063
61188
|
bottom;
|
|
61064
61189
|
left;
|
|
@@ -64272,6 +64397,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64272
64397
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
64273
64398
|
}
|
|
64274
64399
|
var WebClipboardWrapper = class {
|
|
64400
|
+
clipboard;
|
|
64275
64401
|
constructor(clipboard) {
|
|
64276
64402
|
this.clipboard = clipboard;
|
|
64277
64403
|
}
|
|
@@ -64750,6 +64876,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64750
64876
|
* @param operations initial operations
|
|
64751
64877
|
*/
|
|
64752
64878
|
var Branch = class Branch {
|
|
64879
|
+
buildTransformation;
|
|
64880
|
+
operations;
|
|
64753
64881
|
constructor(buildTransformation, operations = []) {
|
|
64754
64882
|
this.buildTransformation = buildTransformation;
|
|
64755
64883
|
this.operations = operations;
|
|
@@ -64866,6 +64994,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64866
64994
|
* to revert it).
|
|
64867
64995
|
*/
|
|
64868
64996
|
var Operation = class {
|
|
64997
|
+
id;
|
|
64998
|
+
data;
|
|
64869
64999
|
constructor(id, data) {
|
|
64870
65000
|
this.id = id;
|
|
64871
65001
|
this.data = data;
|
|
@@ -64875,6 +65005,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64875
65005
|
}
|
|
64876
65006
|
};
|
|
64877
65007
|
var LazyOperation = class LazyOperation {
|
|
65008
|
+
id;
|
|
65009
|
+
lazyData;
|
|
64878
65010
|
constructor(id, lazyData) {
|
|
64879
65011
|
this.id = id;
|
|
64880
65012
|
this.lazyData = lazyData;
|
|
@@ -64900,6 +65032,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64900
65032
|
* ```
|
|
64901
65033
|
*/
|
|
64902
65034
|
var OperationSequence = class OperationSequence {
|
|
65035
|
+
operations;
|
|
64903
65036
|
constructor(operations) {
|
|
64904
65037
|
this.operations = operations;
|
|
64905
65038
|
}
|
|
@@ -64975,6 +65108,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64975
65108
|
*
|
|
64976
65109
|
*/
|
|
64977
65110
|
var Tree = class {
|
|
65111
|
+
buildTransformation;
|
|
64978
65112
|
branches;
|
|
64979
65113
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
64980
65114
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -65557,6 +65691,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65557
65691
|
* with the new selected anchor
|
|
65558
65692
|
*/
|
|
65559
65693
|
var SelectionStreamProcessorImpl = class {
|
|
65694
|
+
getters;
|
|
65560
65695
|
stream;
|
|
65561
65696
|
/**
|
|
65562
65697
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -68850,8 +68985,8 @@ exports.stores = stores;
|
|
|
68850
68985
|
exports.tokenColors = tokenColors;
|
|
68851
68986
|
exports.tokenize = tokenize;
|
|
68852
68987
|
|
|
68853
|
-
__info__.version = "18.2.
|
|
68854
|
-
__info__.date = "2026-
|
|
68855
|
-
__info__.hash = "
|
|
68988
|
+
__info__.version = "18.2.55";
|
|
68989
|
+
__info__.date = "2026-06-06T06:20:23.893Z";
|
|
68990
|
+
__info__.hash = "57b568a";
|
|
68856
68991
|
|
|
68857
68992
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|