@odoo/o-spreadsheet 19.1.19 → 19.1.21
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 +170 -27
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +170 -27
- package/dist/o_spreadsheet.iife.js +170 -27
- package/dist/o_spreadsheet.iife.min.js +208 -208
- 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.1.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.21
|
|
6
|
+
* @date 2026-05-27T05:56:49.891Z
|
|
7
|
+
* @hash 99ebe93
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -2038,6 +2038,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2038
2038
|
}
|
|
2039
2039
|
};
|
|
2040
2040
|
var StoreFactory = class {
|
|
2041
|
+
get;
|
|
2041
2042
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
2042
2043
|
constructor(get) {
|
|
2043
2044
|
this.get = get;
|
|
@@ -2082,6 +2083,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
2082
2083
|
return MetaStore;
|
|
2083
2084
|
}
|
|
2084
2085
|
var DisposableStore = class {
|
|
2086
|
+
get;
|
|
2085
2087
|
disposeCallbacks = [];
|
|
2086
2088
|
constructor(get) {
|
|
2087
2089
|
this.get = get;
|
|
@@ -2837,6 +2839,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
2837
2839
|
else return ALTERNATING_COLORS_XL;
|
|
2838
2840
|
}
|
|
2839
2841
|
var ColorGenerator = class {
|
|
2842
|
+
preferredColors;
|
|
2840
2843
|
currentColorIndex = 0;
|
|
2841
2844
|
palette;
|
|
2842
2845
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -3555,6 +3558,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3555
3558
|
return sprintf(_translate(s), ...values);
|
|
3556
3559
|
};
|
|
3557
3560
|
var LazyTranslatedString = class extends String {
|
|
3561
|
+
values;
|
|
3558
3562
|
constructor(str, values) {
|
|
3559
3563
|
super(str);
|
|
3560
3564
|
this.values = values;
|
|
@@ -3584,6 +3588,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3584
3588
|
};
|
|
3585
3589
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3586
3590
|
var EvaluationError = class {
|
|
3591
|
+
message;
|
|
3592
|
+
value;
|
|
3587
3593
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3588
3594
|
this.message = message;
|
|
3589
3595
|
this.value = value;
|
|
@@ -3616,6 +3622,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3616
3622
|
}
|
|
3617
3623
|
};
|
|
3618
3624
|
var SplillBlockedError = class extends EvaluationError {
|
|
3625
|
+
errorOriginPosition;
|
|
3619
3626
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
3620
3627
|
super(message, CellErrorType.SpilledBlocked);
|
|
3621
3628
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -6422,8 +6429,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
6422
6429
|
changeType: "NONE",
|
|
6423
6430
|
range
|
|
6424
6431
|
};
|
|
6432
|
+
const isUnboundedAtEnd = range.unboundedZone[end] === void 0;
|
|
6433
|
+
if (isUnboundedAtEnd && !range.unboundedZone.hasHeader) return {
|
|
6434
|
+
changeType: "RESIZE",
|
|
6435
|
+
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
6436
|
+
};
|
|
6425
6437
|
if (cmd.position === "after") {
|
|
6426
|
-
if (range.zone[start] <= cmd.base && cmd.base < range.zone[end]) return {
|
|
6438
|
+
if (range.zone[start] <= cmd.base && (cmd.base < range.zone[end] || isUnboundedAtEnd)) return {
|
|
6427
6439
|
changeType: "RESIZE",
|
|
6428
6440
|
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
6429
6441
|
};
|
|
@@ -7352,6 +7364,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
7352
7364
|
ROUNDDOWN: [{
|
|
7353
7365
|
type: "NUMBER",
|
|
7354
7366
|
value: 0
|
|
7367
|
+
}],
|
|
7368
|
+
IFERROR: [{
|
|
7369
|
+
type: "NUMBER",
|
|
7370
|
+
value: 0
|
|
7355
7371
|
}]
|
|
7356
7372
|
};
|
|
7357
7373
|
/**
|
|
@@ -10067,6 +10083,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
10067
10083
|
}, runtime).computeDesign();
|
|
10068
10084
|
}
|
|
10069
10085
|
var ScorecardChartConfigBuilder = class {
|
|
10086
|
+
runtime;
|
|
10070
10087
|
context;
|
|
10071
10088
|
width;
|
|
10072
10089
|
height;
|
|
@@ -16114,6 +16131,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16114
16131
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
16115
16132
|
*/
|
|
16116
16133
|
var Animation = class {
|
|
16134
|
+
startValue;
|
|
16135
|
+
endValue;
|
|
16136
|
+
duration;
|
|
16137
|
+
callback;
|
|
16117
16138
|
startTime = void 0;
|
|
16118
16139
|
animationFrameId = null;
|
|
16119
16140
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -16577,6 +16598,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
16577
16598
|
}
|
|
16578
16599
|
};
|
|
16579
16600
|
var PopoverPositionContext = class {
|
|
16601
|
+
anchorRect;
|
|
16602
|
+
containerRect;
|
|
16603
|
+
propsMaxSize;
|
|
16604
|
+
spreadsheetOffset;
|
|
16605
|
+
lastPosition;
|
|
16580
16606
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
16581
16607
|
this.anchorRect = anchorRect;
|
|
16582
16608
|
this.containerRect = containerRect;
|
|
@@ -28532,6 +28558,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
28532
28558
|
//#endregion
|
|
28533
28559
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
28534
28560
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
28561
|
+
args;
|
|
28535
28562
|
constructor(get, args) {
|
|
28536
28563
|
super(get);
|
|
28537
28564
|
this.args = args;
|
|
@@ -29374,6 +29401,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29374
29401
|
}
|
|
29375
29402
|
};
|
|
29376
29403
|
var ContainerWrapper = class {
|
|
29404
|
+
el;
|
|
29377
29405
|
constructor(el) {
|
|
29378
29406
|
this.el = el;
|
|
29379
29407
|
}
|
|
@@ -29445,6 +29473,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29445
29473
|
* This plugin handles this internal state.
|
|
29446
29474
|
*/
|
|
29447
29475
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
29476
|
+
initialRanges;
|
|
29477
|
+
inputHasSingleRange;
|
|
29478
|
+
colors;
|
|
29479
|
+
disabledRanges;
|
|
29448
29480
|
mutators = [
|
|
29449
29481
|
"resetWithRanges",
|
|
29450
29482
|
"focusById",
|
|
@@ -31964,6 +31996,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31964
31996
|
* Represent a raw XML string
|
|
31965
31997
|
*/
|
|
31966
31998
|
var XMLString = class {
|
|
31999
|
+
xmlString;
|
|
31967
32000
|
/**
|
|
31968
32001
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
31969
32002
|
*/
|
|
@@ -38342,13 +38375,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38342
38375
|
break;
|
|
38343
38376
|
}
|
|
38344
38377
|
return {
|
|
38378
|
+
/**
|
|
38379
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
38380
|
+
*/
|
|
38345
38381
|
id: measure.id,
|
|
38382
|
+
/**
|
|
38383
|
+
* Display name of the measure
|
|
38384
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
38385
|
+
*/
|
|
38346
38386
|
get displayName() {
|
|
38347
38387
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
38348
38388
|
},
|
|
38349
38389
|
userDefinedName: measure.userDefinedName,
|
|
38390
|
+
/**
|
|
38391
|
+
* Get the name of the field of the measure
|
|
38392
|
+
*/
|
|
38350
38393
|
fieldName,
|
|
38394
|
+
/**
|
|
38395
|
+
* Get the aggregator of the measure
|
|
38396
|
+
*/
|
|
38351
38397
|
aggregator,
|
|
38398
|
+
/**
|
|
38399
|
+
* Get the type of the measure field
|
|
38400
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
38401
|
+
*/
|
|
38352
38402
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
38353
38403
|
isValid,
|
|
38354
38404
|
isHidden: measure.isHidden,
|
|
@@ -38362,10 +38412,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
38362
38412
|
const type = field?.type ?? "integer";
|
|
38363
38413
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
38364
38414
|
return {
|
|
38415
|
+
/**
|
|
38416
|
+
* Get the display name of the dimension
|
|
38417
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
38418
|
+
*/
|
|
38365
38419
|
displayName: field?.string ?? dimension.fieldName,
|
|
38420
|
+
/**
|
|
38421
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
38422
|
+
* e.g. "stage_id", "create_date:month"
|
|
38423
|
+
*/
|
|
38366
38424
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
38425
|
+
/**
|
|
38426
|
+
* Get the name of the field of the dimension
|
|
38427
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
38428
|
+
*/
|
|
38367
38429
|
fieldName: dimension.fieldName,
|
|
38430
|
+
/**
|
|
38431
|
+
* Get the aggregate operator of the dimension
|
|
38432
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
38433
|
+
*/
|
|
38368
38434
|
granularity,
|
|
38435
|
+
/**
|
|
38436
|
+
* Get the type of the field of the dimension
|
|
38437
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
38438
|
+
*/
|
|
38369
38439
|
type: field?.isCustomField ? "custom" : type,
|
|
38370
38440
|
order: dimension.order,
|
|
38371
38441
|
isValid: !!field,
|
|
@@ -49231,6 +49301,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49231
49301
|
//#endregion
|
|
49232
49302
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
49233
49303
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
49304
|
+
pivotId;
|
|
49305
|
+
initialMeasure;
|
|
49234
49306
|
mutators = [
|
|
49235
49307
|
"cancelMeasureDisplayEdition",
|
|
49236
49308
|
"updateMeasureDisplayType",
|
|
@@ -49415,7 +49487,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49415
49487
|
col,
|
|
49416
49488
|
row
|
|
49417
49489
|
};
|
|
49418
|
-
if (
|
|
49490
|
+
if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
|
|
49419
49491
|
}
|
|
49420
49492
|
return positions;
|
|
49421
49493
|
}
|
|
@@ -49683,6 +49755,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49683
49755
|
//#endregion
|
|
49684
49756
|
//#region src/formulas/code_builder.ts
|
|
49685
49757
|
var FunctionCodeBuilder = class {
|
|
49758
|
+
scope;
|
|
49686
49759
|
code = "";
|
|
49687
49760
|
constructor(scope = new Scope()) {
|
|
49688
49761
|
this.scope = scope;
|
|
@@ -49698,6 +49771,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49698
49771
|
}
|
|
49699
49772
|
};
|
|
49700
49773
|
var FunctionCodeImpl = class {
|
|
49774
|
+
scope;
|
|
49775
|
+
returnExpression;
|
|
49701
49776
|
code;
|
|
49702
49777
|
constructor(scope, code, returnExpression) {
|
|
49703
49778
|
this.scope = scope;
|
|
@@ -50512,6 +50587,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50512
50587
|
function getFirstPivotFunction(tokens) {
|
|
50513
50588
|
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS)[0];
|
|
50514
50589
|
}
|
|
50590
|
+
function getPivotFunctions(tokens) {
|
|
50591
|
+
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS);
|
|
50592
|
+
}
|
|
50515
50593
|
/**
|
|
50516
50594
|
* Parse a spreadsheet formula and detect the number of PIVOT functions that are
|
|
50517
50595
|
* present in the given formula.
|
|
@@ -50588,6 +50666,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50588
50666
|
//#endregion
|
|
50589
50667
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
50590
50668
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
50669
|
+
pivotId;
|
|
50670
|
+
updateMode;
|
|
50591
50671
|
mutators = [
|
|
50592
50672
|
"reset",
|
|
50593
50673
|
"deferUpdates",
|
|
@@ -54039,6 +54119,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54039
54119
|
}
|
|
54040
54120
|
};
|
|
54041
54121
|
var FormulaCellWithDependencies = class {
|
|
54122
|
+
id;
|
|
54123
|
+
format;
|
|
54124
|
+
sheetId;
|
|
54125
|
+
getRangeString;
|
|
54042
54126
|
isFormula = true;
|
|
54043
54127
|
compiledFormula;
|
|
54044
54128
|
constructor(id, compiledFormula, format, dependencies, sheetId, getRangeString) {
|
|
@@ -54072,6 +54156,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
54072
54156
|
}
|
|
54073
54157
|
};
|
|
54074
54158
|
var RangeReferenceToken = class {
|
|
54159
|
+
ranges;
|
|
54160
|
+
rangeIndex;
|
|
54161
|
+
sheetId;
|
|
54162
|
+
getRangeString;
|
|
54075
54163
|
type = "REFERENCE";
|
|
54076
54164
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
54077
54165
|
this.ranges = ranges;
|
|
@@ -57930,6 +58018,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57930
58018
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
57931
58019
|
}
|
|
57932
58020
|
var CompilationParametersBuilder = class {
|
|
58021
|
+
getters;
|
|
58022
|
+
computeCell;
|
|
57933
58023
|
evalContext;
|
|
57934
58024
|
rangeCache = {};
|
|
57935
58025
|
constructor(context, getters, computeCell) {
|
|
@@ -58876,6 +58966,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58876
58966
|
}));
|
|
58877
58967
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
58878
58968
|
var Evaluator = class {
|
|
58969
|
+
context;
|
|
58879
58970
|
getters;
|
|
58880
58971
|
compilationParams;
|
|
58881
58972
|
evaluatedCells = new PositionMap();
|
|
@@ -61147,6 +61238,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61147
61238
|
"getFirstPivotFunction",
|
|
61148
61239
|
"getPivotCellSortDirection",
|
|
61149
61240
|
"getPivotIdFromPosition",
|
|
61241
|
+
"getPivotIdsFromPosition",
|
|
61150
61242
|
"getPivotCellFromPosition",
|
|
61151
61243
|
"generateNewCalculatedMeasureName",
|
|
61152
61244
|
"isPivotUnused",
|
|
@@ -61204,37 +61296,52 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61204
61296
|
}
|
|
61205
61297
|
}
|
|
61206
61298
|
/**
|
|
61207
|
-
* Get the id of the pivot at the given position. Returns undefined if there
|
|
61299
|
+
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
61208
61300
|
* is no pivot at this position
|
|
61209
61301
|
*/
|
|
61210
61302
|
getPivotIdFromPosition(position) {
|
|
61303
|
+
return this.getPivotIdsFromPosition(position)[0];
|
|
61304
|
+
}
|
|
61305
|
+
/**
|
|
61306
|
+
* Get all of the ids of the pivot present in the formula at the given position.
|
|
61307
|
+
*/
|
|
61308
|
+
getPivotIdsFromPosition(position) {
|
|
61211
61309
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
61212
|
-
if (cell && cell.isFormula)
|
|
61213
|
-
|
|
61214
|
-
|
|
61215
|
-
|
|
61216
|
-
|
|
61217
|
-
|
|
61218
|
-
|
|
61310
|
+
if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
|
|
61311
|
+
return [];
|
|
61312
|
+
}
|
|
61313
|
+
getPivotIdsFromFormula(sheetId, formula) {
|
|
61314
|
+
return this.getPivotFunctions(sheetId, formula.tokens).map((pivotFunction) => {
|
|
61315
|
+
const pivotId = pivotFunction.args[0]?.toString();
|
|
61316
|
+
return pivotId && this.getters.getPivotId(pivotId);
|
|
61317
|
+
}).filter(isDefined);
|
|
61219
61318
|
}
|
|
61220
61319
|
isSpillPivotFormula(position) {
|
|
61221
61320
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
61222
61321
|
if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula.tokens)?.functionName === "PIVOT";
|
|
61223
61322
|
return false;
|
|
61224
61323
|
}
|
|
61225
|
-
|
|
61226
|
-
const
|
|
61227
|
-
if (!
|
|
61228
|
-
const
|
|
61229
|
-
|
|
61230
|
-
functionName,
|
|
61231
|
-
|
|
61324
|
+
getPivotFunctions(sheetId, tokens) {
|
|
61325
|
+
const pivotFunctions = getPivotFunctions(tokens);
|
|
61326
|
+
if (!pivotFunctions.length) return [];
|
|
61327
|
+
const evaluatedPivotFunctions = [];
|
|
61328
|
+
for (const pivotFunction of pivotFunctions) {
|
|
61329
|
+
const { functionName, args } = pivotFunction;
|
|
61330
|
+
const evaluatedArgs = args.map((argAst) => {
|
|
61232
61331
|
if (argAst.type === "EMPTY") return;
|
|
61233
61332
|
else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
|
|
61234
61333
|
const argsString = astToFormula(argAst);
|
|
61235
61334
|
return this.getters.evaluateFormula(sheetId, argsString);
|
|
61236
|
-
})
|
|
61237
|
-
|
|
61335
|
+
});
|
|
61336
|
+
evaluatedPivotFunctions.push({
|
|
61337
|
+
functionName,
|
|
61338
|
+
args: evaluatedArgs
|
|
61339
|
+
});
|
|
61340
|
+
}
|
|
61341
|
+
return evaluatedPivotFunctions;
|
|
61342
|
+
}
|
|
61343
|
+
getFirstPivotFunction(sheetId, tokens) {
|
|
61344
|
+
return this.getPivotFunctions(sheetId, tokens)[0];
|
|
61238
61345
|
}
|
|
61239
61346
|
/**
|
|
61240
61347
|
* Returns the domain args of a pivot formula from a position.
|
|
@@ -61340,8 +61447,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61340
61447
|
const unusedPivots = new Set(this.getters.getPivotIds());
|
|
61341
61448
|
for (const sheetId of this.getters.getSheetIds()) for (const cellId in this.getters.getCells(sheetId)) {
|
|
61342
61449
|
const position = this.getters.getCellPosition(cellId);
|
|
61343
|
-
const
|
|
61344
|
-
|
|
61450
|
+
const pivotIds = this.getPivotIdsFromPosition(position);
|
|
61451
|
+
for (const pivotId of pivotIds) {
|
|
61345
61452
|
unusedPivots.delete(pivotId);
|
|
61346
61453
|
if (!unusedPivots.size) {
|
|
61347
61454
|
this.unusedPivotsInFormulas = [];
|
|
@@ -61349,6 +61456,21 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61349
61456
|
}
|
|
61350
61457
|
}
|
|
61351
61458
|
}
|
|
61459
|
+
for (const pivotId of this.getters.getPivotIds()) {
|
|
61460
|
+
const pivot = this.getters.getPivot(pivotId);
|
|
61461
|
+
for (const measure of pivot.definition.measures) if (measure.computedBy) {
|
|
61462
|
+
const { sheetId } = measure.computedBy;
|
|
61463
|
+
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
61464
|
+
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
61465
|
+
for (const relatedPivotId of relatedPivotIds) {
|
|
61466
|
+
unusedPivots.delete(relatedPivotId);
|
|
61467
|
+
if (!unusedPivots.size) {
|
|
61468
|
+
this.unusedPivotsInFormulas = [];
|
|
61469
|
+
return [];
|
|
61470
|
+
}
|
|
61471
|
+
}
|
|
61472
|
+
}
|
|
61473
|
+
}
|
|
61352
61474
|
this.unusedPivotsInFormulas = [...unusedPivots];
|
|
61353
61475
|
return this.unusedPivotsInFormulas;
|
|
61354
61476
|
}
|
|
@@ -61357,6 +61479,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61357
61479
|
//#endregion
|
|
61358
61480
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
61359
61481
|
var ClipboardHandler = class {
|
|
61482
|
+
getters;
|
|
61483
|
+
dispatch;
|
|
61360
61484
|
constructor(getters, dispatch) {
|
|
61361
61485
|
this.getters = getters;
|
|
61362
61486
|
this.dispatch = dispatch;
|
|
@@ -63626,6 +63750,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63626
63750
|
//#endregion
|
|
63627
63751
|
//#region src/collaborative/revisions.ts
|
|
63628
63752
|
var Revision = class {
|
|
63753
|
+
rootCommand;
|
|
63754
|
+
timestamp;
|
|
63629
63755
|
id;
|
|
63630
63756
|
clientId;
|
|
63631
63757
|
_commands = [];
|
|
@@ -63662,6 +63788,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63662
63788
|
//#region src/collaborative/session.ts
|
|
63663
63789
|
var ClientDisconnectedError = class extends Error {};
|
|
63664
63790
|
var Session = class extends EventBus {
|
|
63791
|
+
revisions;
|
|
63792
|
+
transportService;
|
|
63793
|
+
serverRevisionId;
|
|
63665
63794
|
/**
|
|
63666
63795
|
* Positions of the others client.
|
|
63667
63796
|
*/
|
|
@@ -67163,6 +67292,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
67163
67292
|
//#endregion
|
|
67164
67293
|
//#region src/helpers/internal_viewport.ts
|
|
67165
67294
|
var InternalViewport = class {
|
|
67295
|
+
getters;
|
|
67296
|
+
sheetId;
|
|
67297
|
+
boundaries;
|
|
67166
67298
|
top;
|
|
67167
67299
|
bottom;
|
|
67168
67300
|
left;
|
|
@@ -71880,6 +72012,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71880
72012
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
71881
72013
|
}
|
|
71882
72014
|
var WebClipboardWrapper = class {
|
|
72015
|
+
clipboard;
|
|
71883
72016
|
constructor(clipboard) {
|
|
71884
72017
|
this.clipboard = clipboard;
|
|
71885
72018
|
}
|
|
@@ -72143,6 +72276,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
72143
72276
|
//#endregion
|
|
72144
72277
|
//#region src/collaborative/readonly_transport_filter.ts
|
|
72145
72278
|
var ReadonlyTransportFilter = class {
|
|
72279
|
+
transportService;
|
|
72146
72280
|
constructor(transportService) {
|
|
72147
72281
|
this.transportService = transportService;
|
|
72148
72282
|
}
|
|
@@ -72174,6 +72308,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
72174
72308
|
* @param operations initial operations
|
|
72175
72309
|
*/
|
|
72176
72310
|
var Branch = class Branch {
|
|
72311
|
+
buildTransformation;
|
|
72312
|
+
operations;
|
|
72177
72313
|
constructor(buildTransformation, operations = []) {
|
|
72178
72314
|
this.buildTransformation = buildTransformation;
|
|
72179
72315
|
this.operations = operations;
|
|
@@ -72290,6 +72426,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
72290
72426
|
* to revert it).
|
|
72291
72427
|
*/
|
|
72292
72428
|
var Operation = class {
|
|
72429
|
+
id;
|
|
72430
|
+
data;
|
|
72293
72431
|
constructor(id, data) {
|
|
72294
72432
|
this.id = id;
|
|
72295
72433
|
this.data = data;
|
|
@@ -72299,6 +72437,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
72299
72437
|
}
|
|
72300
72438
|
};
|
|
72301
72439
|
var LazyOperation = class LazyOperation {
|
|
72440
|
+
id;
|
|
72441
|
+
lazyData;
|
|
72302
72442
|
constructor(id, lazyData) {
|
|
72303
72443
|
this.id = id;
|
|
72304
72444
|
this.lazyData = lazyData;
|
|
@@ -72324,6 +72464,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
72324
72464
|
* ```
|
|
72325
72465
|
*/
|
|
72326
72466
|
var OperationSequence = class OperationSequence {
|
|
72467
|
+
operations;
|
|
72327
72468
|
constructor(operations) {
|
|
72328
72469
|
this.operations = operations;
|
|
72329
72470
|
}
|
|
@@ -72399,6 +72540,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
72399
72540
|
*
|
|
72400
72541
|
*/
|
|
72401
72542
|
var Tree = class {
|
|
72543
|
+
buildTransformation;
|
|
72402
72544
|
branches;
|
|
72403
72545
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
72404
72546
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -73211,6 +73353,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
73211
73353
|
* with the new selected anchor
|
|
73212
73354
|
*/
|
|
73213
73355
|
var SelectionStreamProcessorImpl = class {
|
|
73356
|
+
getters;
|
|
73214
73357
|
stream;
|
|
73215
73358
|
/**
|
|
73216
73359
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -79001,8 +79144,8 @@ exports.stores = stores;
|
|
|
79001
79144
|
exports.tokenColors = tokenColors;
|
|
79002
79145
|
exports.tokenize = tokenize;
|
|
79003
79146
|
|
|
79004
|
-
__info__.version = "19.1.
|
|
79005
|
-
__info__.date = "2026-05-
|
|
79006
|
-
__info__.hash = "
|
|
79147
|
+
__info__.version = "19.1.21";
|
|
79148
|
+
__info__.date = "2026-05-27T05:56:49.891Z";
|
|
79149
|
+
__info__.hash = "99ebe93";
|
|
79007
79150
|
|
|
79008
79151
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|