@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
|
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";
|
|
@@ -2036,6 +2036,7 @@ var DependencyContainer = class extends EventBus {
|
|
|
2036
2036
|
}
|
|
2037
2037
|
};
|
|
2038
2038
|
var StoreFactory = class {
|
|
2039
|
+
get;
|
|
2039
2040
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
2040
2041
|
constructor(get) {
|
|
2041
2042
|
this.get = get;
|
|
@@ -2080,6 +2081,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
2080
2081
|
return MetaStore;
|
|
2081
2082
|
}
|
|
2082
2083
|
var DisposableStore = class {
|
|
2084
|
+
get;
|
|
2083
2085
|
disposeCallbacks = [];
|
|
2084
2086
|
constructor(get) {
|
|
2085
2087
|
this.get = get;
|
|
@@ -2835,6 +2837,7 @@ function getAlternatingColorsPalette(quantity) {
|
|
|
2835
2837
|
else return ALTERNATING_COLORS_XL;
|
|
2836
2838
|
}
|
|
2837
2839
|
var ColorGenerator = class {
|
|
2840
|
+
preferredColors;
|
|
2838
2841
|
currentColorIndex = 0;
|
|
2839
2842
|
palette;
|
|
2840
2843
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -3553,6 +3556,7 @@ const _t = function(s, ...values) {
|
|
|
3553
3556
|
return sprintf(_translate(s), ...values);
|
|
3554
3557
|
};
|
|
3555
3558
|
var LazyTranslatedString = class extends String {
|
|
3559
|
+
values;
|
|
3556
3560
|
constructor(str, values) {
|
|
3557
3561
|
super(str);
|
|
3558
3562
|
this.values = values;
|
|
@@ -3582,6 +3586,8 @@ const CellErrorType = {
|
|
|
3582
3586
|
};
|
|
3583
3587
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3584
3588
|
var EvaluationError = class {
|
|
3589
|
+
message;
|
|
3590
|
+
value;
|
|
3585
3591
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3586
3592
|
this.message = message;
|
|
3587
3593
|
this.value = value;
|
|
@@ -3614,6 +3620,7 @@ var UnknownFunctionError = class extends EvaluationError {
|
|
|
3614
3620
|
}
|
|
3615
3621
|
};
|
|
3616
3622
|
var SplillBlockedError = class extends EvaluationError {
|
|
3623
|
+
errorOriginPosition;
|
|
3617
3624
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
3618
3625
|
super(message, CellErrorType.SpilledBlocked);
|
|
3619
3626
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -6420,8 +6427,13 @@ function getApplyRangeChangeAddColRow(cmd) {
|
|
|
6420
6427
|
changeType: "NONE",
|
|
6421
6428
|
range
|
|
6422
6429
|
};
|
|
6430
|
+
const isUnboundedAtEnd = range.unboundedZone[end] === void 0;
|
|
6431
|
+
if (isUnboundedAtEnd && !range.unboundedZone.hasHeader) return {
|
|
6432
|
+
changeType: "RESIZE",
|
|
6433
|
+
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
6434
|
+
};
|
|
6423
6435
|
if (cmd.position === "after") {
|
|
6424
|
-
if (range.zone[start] <= cmd.base && cmd.base < range.zone[end]) return {
|
|
6436
|
+
if (range.zone[start] <= cmd.base && (cmd.base < range.zone[end] || isUnboundedAtEnd)) return {
|
|
6425
6437
|
changeType: "RESIZE",
|
|
6426
6438
|
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
6427
6439
|
};
|
|
@@ -7350,6 +7362,10 @@ const FORCE_DEFAULT_ARGS_FUNCTIONS = {
|
|
|
7350
7362
|
ROUNDDOWN: [{
|
|
7351
7363
|
type: "NUMBER",
|
|
7352
7364
|
value: 0
|
|
7365
|
+
}],
|
|
7366
|
+
IFERROR: [{
|
|
7367
|
+
type: "NUMBER",
|
|
7368
|
+
value: 0
|
|
7353
7369
|
}]
|
|
7354
7370
|
};
|
|
7355
7371
|
/**
|
|
@@ -10065,6 +10081,7 @@ function getScorecardConfiguration({ width, height }, runtime) {
|
|
|
10065
10081
|
}, runtime).computeDesign();
|
|
10066
10082
|
}
|
|
10067
10083
|
var ScorecardChartConfigBuilder = class {
|
|
10084
|
+
runtime;
|
|
10068
10085
|
context;
|
|
10069
10086
|
width;
|
|
10070
10087
|
height;
|
|
@@ -16112,6 +16129,10 @@ var GaugeChartComponent = class extends Component {
|
|
|
16112
16129
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
16113
16130
|
*/
|
|
16114
16131
|
var Animation = class {
|
|
16132
|
+
startValue;
|
|
16133
|
+
endValue;
|
|
16134
|
+
duration;
|
|
16135
|
+
callback;
|
|
16115
16136
|
startTime = void 0;
|
|
16116
16137
|
animationFrameId = null;
|
|
16117
16138
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -16575,6 +16596,11 @@ var Popover = class extends Component {
|
|
|
16575
16596
|
}
|
|
16576
16597
|
};
|
|
16577
16598
|
var PopoverPositionContext = class {
|
|
16599
|
+
anchorRect;
|
|
16600
|
+
containerRect;
|
|
16601
|
+
propsMaxSize;
|
|
16602
|
+
spreadsheetOffset;
|
|
16603
|
+
lastPosition;
|
|
16578
16604
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
16579
16605
|
this.anchorRect = anchorRect;
|
|
16580
16606
|
this.containerRect = containerRect;
|
|
@@ -28530,6 +28556,7 @@ var AbstractComposerStore = class extends SpreadsheetStore {
|
|
|
28530
28556
|
//#endregion
|
|
28531
28557
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
28532
28558
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
28559
|
+
args;
|
|
28533
28560
|
constructor(get, args) {
|
|
28534
28561
|
super(get);
|
|
28535
28562
|
this.args = args;
|
|
@@ -29372,6 +29399,7 @@ var DOMDndHelper = class {
|
|
|
29372
29399
|
}
|
|
29373
29400
|
};
|
|
29374
29401
|
var ContainerWrapper = class {
|
|
29402
|
+
el;
|
|
29375
29403
|
constructor(el) {
|
|
29376
29404
|
this.el = el;
|
|
29377
29405
|
}
|
|
@@ -29443,6 +29471,10 @@ var FocusStore = class {
|
|
|
29443
29471
|
* This plugin handles this internal state.
|
|
29444
29472
|
*/
|
|
29445
29473
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
29474
|
+
initialRanges;
|
|
29475
|
+
inputHasSingleRange;
|
|
29476
|
+
colors;
|
|
29477
|
+
disabledRanges;
|
|
29446
29478
|
mutators = [
|
|
29447
29479
|
"resetWithRanges",
|
|
29448
29480
|
"focusById",
|
|
@@ -31962,6 +31994,7 @@ function buildTableStyle(name, templateName, primaryColor) {
|
|
|
31962
31994
|
* Represent a raw XML string
|
|
31963
31995
|
*/
|
|
31964
31996
|
var XMLString = class {
|
|
31997
|
+
xmlString;
|
|
31965
31998
|
/**
|
|
31966
31999
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
31967
32000
|
*/
|
|
@@ -38340,13 +38373,30 @@ var PivotRuntimeDefinition = class {
|
|
|
38340
38373
|
break;
|
|
38341
38374
|
}
|
|
38342
38375
|
return {
|
|
38376
|
+
/**
|
|
38377
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
38378
|
+
*/
|
|
38343
38379
|
id: measure.id,
|
|
38380
|
+
/**
|
|
38381
|
+
* Display name of the measure
|
|
38382
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
38383
|
+
*/
|
|
38344
38384
|
get displayName() {
|
|
38345
38385
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
38346
38386
|
},
|
|
38347
38387
|
userDefinedName: measure.userDefinedName,
|
|
38388
|
+
/**
|
|
38389
|
+
* Get the name of the field of the measure
|
|
38390
|
+
*/
|
|
38348
38391
|
fieldName,
|
|
38392
|
+
/**
|
|
38393
|
+
* Get the aggregator of the measure
|
|
38394
|
+
*/
|
|
38349
38395
|
aggregator,
|
|
38396
|
+
/**
|
|
38397
|
+
* Get the type of the measure field
|
|
38398
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
38399
|
+
*/
|
|
38350
38400
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
38351
38401
|
isValid,
|
|
38352
38402
|
isHidden: measure.isHidden,
|
|
@@ -38360,10 +38410,30 @@ var PivotRuntimeDefinition = class {
|
|
|
38360
38410
|
const type = field?.type ?? "integer";
|
|
38361
38411
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
38362
38412
|
return {
|
|
38413
|
+
/**
|
|
38414
|
+
* Get the display name of the dimension
|
|
38415
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
38416
|
+
*/
|
|
38363
38417
|
displayName: field?.string ?? dimension.fieldName,
|
|
38418
|
+
/**
|
|
38419
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
38420
|
+
* e.g. "stage_id", "create_date:month"
|
|
38421
|
+
*/
|
|
38364
38422
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
38423
|
+
/**
|
|
38424
|
+
* Get the name of the field of the dimension
|
|
38425
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
38426
|
+
*/
|
|
38365
38427
|
fieldName: dimension.fieldName,
|
|
38428
|
+
/**
|
|
38429
|
+
* Get the aggregate operator of the dimension
|
|
38430
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
38431
|
+
*/
|
|
38366
38432
|
granularity,
|
|
38433
|
+
/**
|
|
38434
|
+
* Get the type of the field of the dimension
|
|
38435
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
38436
|
+
*/
|
|
38367
38437
|
type: field?.isCustomField ? "custom" : type,
|
|
38368
38438
|
order: dimension.order,
|
|
38369
38439
|
isValid: !!field,
|
|
@@ -49229,6 +49299,8 @@ var MoreFormatsPanel = class extends Component {
|
|
|
49229
49299
|
//#endregion
|
|
49230
49300
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
49231
49301
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
49302
|
+
pivotId;
|
|
49303
|
+
initialMeasure;
|
|
49232
49304
|
mutators = [
|
|
49233
49305
|
"cancelMeasureDisplayEdition",
|
|
49234
49306
|
"updateMeasureDisplayType",
|
|
@@ -49413,7 +49485,7 @@ function getVisiblePivotCellPositions(getters, pivotId) {
|
|
|
49413
49485
|
col,
|
|
49414
49486
|
row
|
|
49415
49487
|
};
|
|
49416
|
-
if (
|
|
49488
|
+
if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
|
|
49417
49489
|
}
|
|
49418
49490
|
return positions;
|
|
49419
49491
|
}
|
|
@@ -49681,6 +49753,7 @@ var PivotDimensionOrder = class extends Component {
|
|
|
49681
49753
|
//#endregion
|
|
49682
49754
|
//#region src/formulas/code_builder.ts
|
|
49683
49755
|
var FunctionCodeBuilder = class {
|
|
49756
|
+
scope;
|
|
49684
49757
|
code = "";
|
|
49685
49758
|
constructor(scope = new Scope()) {
|
|
49686
49759
|
this.scope = scope;
|
|
@@ -49696,6 +49769,8 @@ var FunctionCodeBuilder = class {
|
|
|
49696
49769
|
}
|
|
49697
49770
|
};
|
|
49698
49771
|
var FunctionCodeImpl = class {
|
|
49772
|
+
scope;
|
|
49773
|
+
returnExpression;
|
|
49699
49774
|
code;
|
|
49700
49775
|
constructor(scope, code, returnExpression) {
|
|
49701
49776
|
this.scope = scope;
|
|
@@ -50510,6 +50585,9 @@ const PIVOT_FUNCTIONS = [
|
|
|
50510
50585
|
function getFirstPivotFunction(tokens) {
|
|
50511
50586
|
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS)[0];
|
|
50512
50587
|
}
|
|
50588
|
+
function getPivotFunctions(tokens) {
|
|
50589
|
+
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS);
|
|
50590
|
+
}
|
|
50513
50591
|
/**
|
|
50514
50592
|
* Parse a spreadsheet formula and detect the number of PIVOT functions that are
|
|
50515
50593
|
* present in the given formula.
|
|
@@ -50586,6 +50664,8 @@ function extractFormulaIdFromToken(tokenAtCursor) {
|
|
|
50586
50664
|
//#endregion
|
|
50587
50665
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
50588
50666
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
50667
|
+
pivotId;
|
|
50668
|
+
updateMode;
|
|
50589
50669
|
mutators = [
|
|
50590
50670
|
"reset",
|
|
50591
50671
|
"deferUpdates",
|
|
@@ -54037,6 +54117,10 @@ var CellPlugin = class extends CorePlugin {
|
|
|
54037
54117
|
}
|
|
54038
54118
|
};
|
|
54039
54119
|
var FormulaCellWithDependencies = class {
|
|
54120
|
+
id;
|
|
54121
|
+
format;
|
|
54122
|
+
sheetId;
|
|
54123
|
+
getRangeString;
|
|
54040
54124
|
isFormula = true;
|
|
54041
54125
|
compiledFormula;
|
|
54042
54126
|
constructor(id, compiledFormula, format, dependencies, sheetId, getRangeString) {
|
|
@@ -54070,6 +54154,10 @@ var FormulaCellWithDependencies = class {
|
|
|
54070
54154
|
}
|
|
54071
54155
|
};
|
|
54072
54156
|
var RangeReferenceToken = class {
|
|
54157
|
+
ranges;
|
|
54158
|
+
rangeIndex;
|
|
54159
|
+
sheetId;
|
|
54160
|
+
getRangeString;
|
|
54073
54161
|
type = "REFERENCE";
|
|
54074
54162
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
54075
54163
|
this.ranges = ranges;
|
|
@@ -57928,6 +58016,8 @@ function buildCompilationParameters(context, getters, computeCell) {
|
|
|
57928
58016
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
57929
58017
|
}
|
|
57930
58018
|
var CompilationParametersBuilder = class {
|
|
58019
|
+
getters;
|
|
58020
|
+
computeCell;
|
|
57931
58021
|
evalContext;
|
|
57932
58022
|
rangeCache = {};
|
|
57933
58023
|
constructor(context, getters, computeCell) {
|
|
@@ -58874,6 +58964,7 @@ const ERROR_CYCLE_CELL = Object.freeze(createEvaluatedCell({
|
|
|
58874
58964
|
}));
|
|
58875
58965
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
58876
58966
|
var Evaluator = class {
|
|
58967
|
+
context;
|
|
58877
58968
|
getters;
|
|
58878
58969
|
compilationParams;
|
|
58879
58970
|
evaluatedCells = new PositionMap();
|
|
@@ -61145,6 +61236,7 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61145
61236
|
"getFirstPivotFunction",
|
|
61146
61237
|
"getPivotCellSortDirection",
|
|
61147
61238
|
"getPivotIdFromPosition",
|
|
61239
|
+
"getPivotIdsFromPosition",
|
|
61148
61240
|
"getPivotCellFromPosition",
|
|
61149
61241
|
"generateNewCalculatedMeasureName",
|
|
61150
61242
|
"isPivotUnused",
|
|
@@ -61202,37 +61294,52 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61202
61294
|
}
|
|
61203
61295
|
}
|
|
61204
61296
|
/**
|
|
61205
|
-
* Get the id of the pivot at the given position. Returns undefined if there
|
|
61297
|
+
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
61206
61298
|
* is no pivot at this position
|
|
61207
61299
|
*/
|
|
61208
61300
|
getPivotIdFromPosition(position) {
|
|
61301
|
+
return this.getPivotIdsFromPosition(position)[0];
|
|
61302
|
+
}
|
|
61303
|
+
/**
|
|
61304
|
+
* Get all of the ids of the pivot present in the formula at the given position.
|
|
61305
|
+
*/
|
|
61306
|
+
getPivotIdsFromPosition(position) {
|
|
61209
61307
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
61210
|
-
if (cell && cell.isFormula)
|
|
61211
|
-
|
|
61212
|
-
|
|
61213
|
-
|
|
61214
|
-
|
|
61215
|
-
|
|
61216
|
-
|
|
61308
|
+
if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
|
|
61309
|
+
return [];
|
|
61310
|
+
}
|
|
61311
|
+
getPivotIdsFromFormula(sheetId, formula) {
|
|
61312
|
+
return this.getPivotFunctions(sheetId, formula.tokens).map((pivotFunction) => {
|
|
61313
|
+
const pivotId = pivotFunction.args[0]?.toString();
|
|
61314
|
+
return pivotId && this.getters.getPivotId(pivotId);
|
|
61315
|
+
}).filter(isDefined);
|
|
61217
61316
|
}
|
|
61218
61317
|
isSpillPivotFormula(position) {
|
|
61219
61318
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
61220
61319
|
if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula.tokens)?.functionName === "PIVOT";
|
|
61221
61320
|
return false;
|
|
61222
61321
|
}
|
|
61223
|
-
|
|
61224
|
-
const
|
|
61225
|
-
if (!
|
|
61226
|
-
const
|
|
61227
|
-
|
|
61228
|
-
functionName,
|
|
61229
|
-
|
|
61322
|
+
getPivotFunctions(sheetId, tokens) {
|
|
61323
|
+
const pivotFunctions = getPivotFunctions(tokens);
|
|
61324
|
+
if (!pivotFunctions.length) return [];
|
|
61325
|
+
const evaluatedPivotFunctions = [];
|
|
61326
|
+
for (const pivotFunction of pivotFunctions) {
|
|
61327
|
+
const { functionName, args } = pivotFunction;
|
|
61328
|
+
const evaluatedArgs = args.map((argAst) => {
|
|
61230
61329
|
if (argAst.type === "EMPTY") return;
|
|
61231
61330
|
else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
|
|
61232
61331
|
const argsString = astToFormula(argAst);
|
|
61233
61332
|
return this.getters.evaluateFormula(sheetId, argsString);
|
|
61234
|
-
})
|
|
61235
|
-
|
|
61333
|
+
});
|
|
61334
|
+
evaluatedPivotFunctions.push({
|
|
61335
|
+
functionName,
|
|
61336
|
+
args: evaluatedArgs
|
|
61337
|
+
});
|
|
61338
|
+
}
|
|
61339
|
+
return evaluatedPivotFunctions;
|
|
61340
|
+
}
|
|
61341
|
+
getFirstPivotFunction(sheetId, tokens) {
|
|
61342
|
+
return this.getPivotFunctions(sheetId, tokens)[0];
|
|
61236
61343
|
}
|
|
61237
61344
|
/**
|
|
61238
61345
|
* Returns the domain args of a pivot formula from a position.
|
|
@@ -61338,8 +61445,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61338
61445
|
const unusedPivots = new Set(this.getters.getPivotIds());
|
|
61339
61446
|
for (const sheetId of this.getters.getSheetIds()) for (const cellId in this.getters.getCells(sheetId)) {
|
|
61340
61447
|
const position = this.getters.getCellPosition(cellId);
|
|
61341
|
-
const
|
|
61342
|
-
|
|
61448
|
+
const pivotIds = this.getPivotIdsFromPosition(position);
|
|
61449
|
+
for (const pivotId of pivotIds) {
|
|
61343
61450
|
unusedPivots.delete(pivotId);
|
|
61344
61451
|
if (!unusedPivots.size) {
|
|
61345
61452
|
this.unusedPivotsInFormulas = [];
|
|
@@ -61347,6 +61454,21 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61347
61454
|
}
|
|
61348
61455
|
}
|
|
61349
61456
|
}
|
|
61457
|
+
for (const pivotId of this.getters.getPivotIds()) {
|
|
61458
|
+
const pivot = this.getters.getPivot(pivotId);
|
|
61459
|
+
for (const measure of pivot.definition.measures) if (measure.computedBy) {
|
|
61460
|
+
const { sheetId } = measure.computedBy;
|
|
61461
|
+
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
61462
|
+
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
61463
|
+
for (const relatedPivotId of relatedPivotIds) {
|
|
61464
|
+
unusedPivots.delete(relatedPivotId);
|
|
61465
|
+
if (!unusedPivots.size) {
|
|
61466
|
+
this.unusedPivotsInFormulas = [];
|
|
61467
|
+
return [];
|
|
61468
|
+
}
|
|
61469
|
+
}
|
|
61470
|
+
}
|
|
61471
|
+
}
|
|
61350
61472
|
this.unusedPivotsInFormulas = [...unusedPivots];
|
|
61351
61473
|
return this.unusedPivotsInFormulas;
|
|
61352
61474
|
}
|
|
@@ -61355,6 +61477,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
61355
61477
|
//#endregion
|
|
61356
61478
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
61357
61479
|
var ClipboardHandler = class {
|
|
61480
|
+
getters;
|
|
61481
|
+
dispatch;
|
|
61358
61482
|
constructor(getters, dispatch) {
|
|
61359
61483
|
this.getters = getters;
|
|
61360
61484
|
this.dispatch = dispatch;
|
|
@@ -63624,6 +63748,8 @@ function transformPositionWithMerge(toTransform, executed) {
|
|
|
63624
63748
|
//#endregion
|
|
63625
63749
|
//#region src/collaborative/revisions.ts
|
|
63626
63750
|
var Revision = class {
|
|
63751
|
+
rootCommand;
|
|
63752
|
+
timestamp;
|
|
63627
63753
|
id;
|
|
63628
63754
|
clientId;
|
|
63629
63755
|
_commands = [];
|
|
@@ -63660,6 +63786,9 @@ var Revision = class {
|
|
|
63660
63786
|
//#region src/collaborative/session.ts
|
|
63661
63787
|
var ClientDisconnectedError = class extends Error {};
|
|
63662
63788
|
var Session = class extends EventBus {
|
|
63789
|
+
revisions;
|
|
63790
|
+
transportService;
|
|
63791
|
+
serverRevisionId;
|
|
63663
63792
|
/**
|
|
63664
63793
|
* Positions of the others client.
|
|
63665
63794
|
*/
|
|
@@ -67161,6 +67290,9 @@ var GridSelectionPlugin = class extends UIPlugin {
|
|
|
67161
67290
|
//#endregion
|
|
67162
67291
|
//#region src/helpers/internal_viewport.ts
|
|
67163
67292
|
var InternalViewport = class {
|
|
67293
|
+
getters;
|
|
67294
|
+
sheetId;
|
|
67295
|
+
boundaries;
|
|
67164
67296
|
top;
|
|
67165
67297
|
bottom;
|
|
67166
67298
|
left;
|
|
@@ -71878,6 +72010,7 @@ function instantiateClipboard() {
|
|
|
71878
72010
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
71879
72011
|
}
|
|
71880
72012
|
var WebClipboardWrapper = class {
|
|
72013
|
+
clipboard;
|
|
71881
72014
|
constructor(clipboard) {
|
|
71882
72015
|
this.clipboard = clipboard;
|
|
71883
72016
|
}
|
|
@@ -72141,6 +72274,7 @@ var Spreadsheet = class extends Component {
|
|
|
72141
72274
|
//#endregion
|
|
72142
72275
|
//#region src/collaborative/readonly_transport_filter.ts
|
|
72143
72276
|
var ReadonlyTransportFilter = class {
|
|
72277
|
+
transportService;
|
|
72144
72278
|
constructor(transportService) {
|
|
72145
72279
|
this.transportService = transportService;
|
|
72146
72280
|
}
|
|
@@ -72172,6 +72306,8 @@ function inverseCommand(cmd) {
|
|
|
72172
72306
|
* @param operations initial operations
|
|
72173
72307
|
*/
|
|
72174
72308
|
var Branch = class Branch {
|
|
72309
|
+
buildTransformation;
|
|
72310
|
+
operations;
|
|
72175
72311
|
constructor(buildTransformation, operations = []) {
|
|
72176
72312
|
this.buildTransformation = buildTransformation;
|
|
72177
72313
|
this.operations = operations;
|
|
@@ -72288,6 +72424,8 @@ var Branch = class Branch {
|
|
|
72288
72424
|
* to revert it).
|
|
72289
72425
|
*/
|
|
72290
72426
|
var Operation = class {
|
|
72427
|
+
id;
|
|
72428
|
+
data;
|
|
72291
72429
|
constructor(id, data) {
|
|
72292
72430
|
this.id = id;
|
|
72293
72431
|
this.data = data;
|
|
@@ -72297,6 +72435,8 @@ var Operation = class {
|
|
|
72297
72435
|
}
|
|
72298
72436
|
};
|
|
72299
72437
|
var LazyOperation = class LazyOperation {
|
|
72438
|
+
id;
|
|
72439
|
+
lazyData;
|
|
72300
72440
|
constructor(id, lazyData) {
|
|
72301
72441
|
this.id = id;
|
|
72302
72442
|
this.lazyData = lazyData;
|
|
@@ -72322,6 +72462,7 @@ var LazyOperation = class LazyOperation {
|
|
|
72322
72462
|
* ```
|
|
72323
72463
|
*/
|
|
72324
72464
|
var OperationSequence = class OperationSequence {
|
|
72465
|
+
operations;
|
|
72325
72466
|
constructor(operations) {
|
|
72326
72467
|
this.operations = operations;
|
|
72327
72468
|
}
|
|
@@ -72397,6 +72538,7 @@ var OperationSequence = class OperationSequence {
|
|
|
72397
72538
|
*
|
|
72398
72539
|
*/
|
|
72399
72540
|
var Tree = class {
|
|
72541
|
+
buildTransformation;
|
|
72400
72542
|
branches;
|
|
72401
72543
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
72402
72544
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -73209,6 +73351,7 @@ var EventStream = class {
|
|
|
73209
73351
|
* with the new selected anchor
|
|
73210
73352
|
*/
|
|
73211
73353
|
var SelectionStreamProcessorImpl = class {
|
|
73354
|
+
getters;
|
|
73212
73355
|
stream;
|
|
73213
73356
|
/**
|
|
73214
73357
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -78946,6 +79089,6 @@ const chartHelpers = {
|
|
|
78946
79089
|
//#endregion
|
|
78947
79090
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
78948
79091
|
|
|
78949
|
-
__info__.version = "19.1.
|
|
78950
|
-
__info__.date = "2026-05-
|
|
78951
|
-
__info__.hash = "
|
|
79092
|
+
__info__.version = "19.1.21";
|
|
79093
|
+
__info__.date = "2026-05-27T05:56:49.891Z";
|
|
79094
|
+
__info__.hash = "99ebe93";
|