@odoo/o-spreadsheet 18.3.47 → 18.3.49
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 -27
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +164 -27
- package/dist/o_spreadsheet.iife.js +164 -27
- package/dist/o_spreadsheet.iife.min.js +300 -300
- 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 18.3.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.3.49
|
|
6
|
+
* @date 2026-05-27T05:57:05.809Z
|
|
7
|
+
* @hash fc34456
|
|
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, xml } from "@odoo/owl";
|
|
@@ -1350,6 +1350,7 @@ function getAlternatingColorsPalette(quantity) {
|
|
|
1350
1350
|
else return ALTERNATING_COLORS_XL;
|
|
1351
1351
|
}
|
|
1352
1352
|
var ColorGenerator = class {
|
|
1353
|
+
preferredColors;
|
|
1353
1354
|
currentColorIndex = 0;
|
|
1354
1355
|
palette;
|
|
1355
1356
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -2931,6 +2932,7 @@ const _t = function(s, ...values) {
|
|
|
2931
2932
|
return sprintf(_translate(s), ...values);
|
|
2932
2933
|
};
|
|
2933
2934
|
var LazyTranslatedString = class extends String {
|
|
2935
|
+
values;
|
|
2934
2936
|
constructor(str, values) {
|
|
2935
2937
|
super(str);
|
|
2936
2938
|
this.values = values;
|
|
@@ -3329,6 +3331,8 @@ const CellErrorType = {
|
|
|
3329
3331
|
};
|
|
3330
3332
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
3331
3333
|
var EvaluationError = class {
|
|
3334
|
+
message;
|
|
3335
|
+
value;
|
|
3332
3336
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
3333
3337
|
this.message = message;
|
|
3334
3338
|
this.value = value;
|
|
@@ -3361,6 +3365,7 @@ var UnknownFunctionError = class extends EvaluationError {
|
|
|
3361
3365
|
}
|
|
3362
3366
|
};
|
|
3363
3367
|
var SplillBlockedError = class extends EvaluationError {
|
|
3368
|
+
errorOriginPosition;
|
|
3364
3369
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
3365
3370
|
super(message, CellErrorType.SpilledBlocked);
|
|
3366
3371
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -5512,8 +5517,13 @@ function getApplyRangeChangeAddColRow(cmd) {
|
|
|
5512
5517
|
changeType: "NONE",
|
|
5513
5518
|
range
|
|
5514
5519
|
};
|
|
5520
|
+
const isUnboundedAtEnd = range.unboundedZone[end] === void 0;
|
|
5521
|
+
if (isUnboundedAtEnd && !range.unboundedZone.hasHeader) return {
|
|
5522
|
+
changeType: "RESIZE",
|
|
5523
|
+
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
5524
|
+
};
|
|
5515
5525
|
if (cmd.position === "after") {
|
|
5516
|
-
if (range.zone[start] <= cmd.base && cmd.base < range.zone[end]) return {
|
|
5526
|
+
if (range.zone[start] <= cmd.base && (cmd.base < range.zone[end] || isUnboundedAtEnd)) return {
|
|
5517
5527
|
changeType: "RESIZE",
|
|
5518
5528
|
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
5519
5529
|
};
|
|
@@ -6157,6 +6167,8 @@ const selectPastedZone = (selection, sourceZones, pastedZones) => {
|
|
|
6157
6167
|
//#endregion
|
|
6158
6168
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
6159
6169
|
var ClipboardHandler = class {
|
|
6170
|
+
getters;
|
|
6171
|
+
dispatch;
|
|
6160
6172
|
constructor(getters, dispatch) {
|
|
6161
6173
|
this.getters = getters;
|
|
6162
6174
|
this.dispatch = dispatch;
|
|
@@ -8582,6 +8594,7 @@ var DependencyContainer = class extends EventBus {
|
|
|
8582
8594
|
}
|
|
8583
8595
|
};
|
|
8584
8596
|
var StoreFactory = class {
|
|
8597
|
+
get;
|
|
8585
8598
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
8586
8599
|
constructor(get) {
|
|
8587
8600
|
this.get = get;
|
|
@@ -8626,6 +8639,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8626
8639
|
return MetaStore;
|
|
8627
8640
|
}
|
|
8628
8641
|
var DisposableStore = class {
|
|
8642
|
+
get;
|
|
8629
8643
|
disposeCallbacks = [];
|
|
8630
8644
|
constructor(get) {
|
|
8631
8645
|
this.get = get;
|
|
@@ -16904,6 +16918,7 @@ function hasStringMessage(obj) {
|
|
|
16904
16918
|
//#endregion
|
|
16905
16919
|
//#region src/formulas/code_builder.ts
|
|
16906
16920
|
var FunctionCodeBuilder = class {
|
|
16921
|
+
scope;
|
|
16907
16922
|
code = "";
|
|
16908
16923
|
constructor(scope = new Scope()) {
|
|
16909
16924
|
this.scope = scope;
|
|
@@ -16919,6 +16934,8 @@ var FunctionCodeBuilder = class {
|
|
|
16919
16934
|
}
|
|
16920
16935
|
};
|
|
16921
16936
|
var FunctionCodeImpl = class {
|
|
16937
|
+
scope;
|
|
16938
|
+
returnExpression;
|
|
16922
16939
|
code;
|
|
16923
16940
|
constructor(scope, code, returnExpression) {
|
|
16924
16941
|
this.scope = scope;
|
|
@@ -18779,6 +18796,7 @@ function getScorecardConfiguration({ width, height }, runtime) {
|
|
|
18779
18796
|
}, runtime).computeDesign();
|
|
18780
18797
|
}
|
|
18781
18798
|
var ScorecardChartConfigBuilder = class {
|
|
18799
|
+
runtime;
|
|
18782
18800
|
context;
|
|
18783
18801
|
width;
|
|
18784
18802
|
height;
|
|
@@ -19897,6 +19915,9 @@ function extractFormulaIdFromToken(tokenAtCursor) {
|
|
|
19897
19915
|
function getFirstPivotFunction(tokens) {
|
|
19898
19916
|
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS)[0];
|
|
19899
19917
|
}
|
|
19918
|
+
function getPivotFunctions(tokens) {
|
|
19919
|
+
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS);
|
|
19920
|
+
}
|
|
19900
19921
|
/**
|
|
19901
19922
|
* Parse a spreadsheet formula and detect the number of PIVOT functions that are
|
|
19902
19923
|
* present in the given formula.
|
|
@@ -25562,6 +25583,7 @@ function getMaxFigureSize(getters, figureSize) {
|
|
|
25562
25583
|
* Represent a raw XML string
|
|
25563
25584
|
*/
|
|
25564
25585
|
var XMLString = class {
|
|
25586
|
+
xmlString;
|
|
25565
25587
|
/**
|
|
25566
25588
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
25567
25589
|
*/
|
|
@@ -26157,6 +26179,10 @@ const FORCE_DEFAULT_ARGS_FUNCTIONS = {
|
|
|
26157
26179
|
ROUNDDOWN: [{
|
|
26158
26180
|
type: "NUMBER",
|
|
26159
26181
|
value: 0
|
|
26182
|
+
}],
|
|
26183
|
+
IFERROR: [{
|
|
26184
|
+
type: "NUMBER",
|
|
26185
|
+
value: 0
|
|
26160
26186
|
}]
|
|
26161
26187
|
};
|
|
26162
26188
|
/**
|
|
@@ -31886,6 +31912,10 @@ var Popover = class extends Component {
|
|
|
31886
31912
|
}
|
|
31887
31913
|
};
|
|
31888
31914
|
var PopoverPositionContext = class {
|
|
31915
|
+
anchorRect;
|
|
31916
|
+
containerRect;
|
|
31917
|
+
propsMaxSize;
|
|
31918
|
+
spreadsheetOffset;
|
|
31889
31919
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset) {
|
|
31890
31920
|
this.anchorRect = anchorRect;
|
|
31891
31921
|
this.containerRect = containerRect;
|
|
@@ -34672,7 +34702,7 @@ function getVisiblePivotCellPositions(getters, pivotId) {
|
|
|
34672
34702
|
col,
|
|
34673
34703
|
row
|
|
34674
34704
|
};
|
|
34675
|
-
if (
|
|
34705
|
+
if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
|
|
34676
34706
|
}
|
|
34677
34707
|
return positions;
|
|
34678
34708
|
}
|
|
@@ -35335,6 +35365,7 @@ var DOMDndHelper = class {
|
|
|
35335
35365
|
}
|
|
35336
35366
|
};
|
|
35337
35367
|
var ContainerWrapper = class {
|
|
35368
|
+
el;
|
|
35338
35369
|
constructor(el) {
|
|
35339
35370
|
this.el = el;
|
|
35340
35371
|
}
|
|
@@ -35420,6 +35451,9 @@ var FocusStore = class {
|
|
|
35420
35451
|
* This plugin handles this internal state.
|
|
35421
35452
|
*/
|
|
35422
35453
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
35454
|
+
initialRanges;
|
|
35455
|
+
inputHasSingleRange;
|
|
35456
|
+
colors;
|
|
35423
35457
|
mutators = [
|
|
35424
35458
|
"resetWithRanges",
|
|
35425
35459
|
"focusById",
|
|
@@ -38723,6 +38757,7 @@ var Composer = class extends Component {
|
|
|
38723
38757
|
//#endregion
|
|
38724
38758
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
38725
38759
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
38760
|
+
args;
|
|
38726
38761
|
constructor(get, args) {
|
|
38727
38762
|
super(get);
|
|
38728
38763
|
this.args = args;
|
|
@@ -42495,6 +42530,8 @@ var MoreFormatsPanel = class extends Component {
|
|
|
42495
42530
|
//#endregion
|
|
42496
42531
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
42497
42532
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
42533
|
+
pivotId;
|
|
42534
|
+
initialMeasure;
|
|
42498
42535
|
mutators = [
|
|
42499
42536
|
"cancelMeasureDisplayEdition",
|
|
42500
42537
|
"updateMeasureDisplayType",
|
|
@@ -43534,13 +43571,30 @@ function createMeasure(fields, measure) {
|
|
|
43534
43571
|
} : fields[fieldName];
|
|
43535
43572
|
const aggregator = measure.aggregator;
|
|
43536
43573
|
return {
|
|
43574
|
+
/**
|
|
43575
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
43576
|
+
*/
|
|
43537
43577
|
id: measure.id,
|
|
43578
|
+
/**
|
|
43579
|
+
* Display name of the measure
|
|
43580
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
43581
|
+
*/
|
|
43538
43582
|
get displayName() {
|
|
43539
43583
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
43540
43584
|
},
|
|
43541
43585
|
userDefinedName: measure.userDefinedName,
|
|
43586
|
+
/**
|
|
43587
|
+
* Get the name of the field of the measure
|
|
43588
|
+
*/
|
|
43542
43589
|
fieldName,
|
|
43590
|
+
/**
|
|
43591
|
+
* Get the aggregator of the measure
|
|
43592
|
+
*/
|
|
43543
43593
|
aggregator,
|
|
43594
|
+
/**
|
|
43595
|
+
* Get the type of the measure field
|
|
43596
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
43597
|
+
*/
|
|
43544
43598
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
43545
43599
|
isValid: !!(field || measure.computedBy),
|
|
43546
43600
|
isHidden: measure.isHidden,
|
|
@@ -43554,10 +43608,30 @@ function createPivotDimension(fields, dimension) {
|
|
|
43554
43608
|
const type = field?.type ?? "integer";
|
|
43555
43609
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
43556
43610
|
return {
|
|
43611
|
+
/**
|
|
43612
|
+
* Get the display name of the dimension
|
|
43613
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
43614
|
+
*/
|
|
43557
43615
|
displayName: field?.string ?? dimension.fieldName,
|
|
43616
|
+
/**
|
|
43617
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
43618
|
+
* e.g. "stage_id", "create_date:month"
|
|
43619
|
+
*/
|
|
43558
43620
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
43621
|
+
/**
|
|
43622
|
+
* Get the name of the field of the dimension
|
|
43623
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
43624
|
+
*/
|
|
43559
43625
|
fieldName: dimension.fieldName,
|
|
43626
|
+
/**
|
|
43627
|
+
* Get the aggregate operator of the dimension
|
|
43628
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
43629
|
+
*/
|
|
43560
43630
|
granularity,
|
|
43631
|
+
/**
|
|
43632
|
+
* Get the type of the field of the dimension
|
|
43633
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
43634
|
+
*/
|
|
43561
43635
|
type,
|
|
43562
43636
|
order: dimension.order,
|
|
43563
43637
|
isValid: !!field
|
|
@@ -44596,6 +44670,7 @@ function adaptPivotRange(range, applyChange) {
|
|
|
44596
44670
|
//#endregion
|
|
44597
44671
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
44598
44672
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
44673
|
+
pivotId;
|
|
44599
44674
|
mutators = [
|
|
44600
44675
|
"reset",
|
|
44601
44676
|
"deferUpdates",
|
|
@@ -52264,6 +52339,11 @@ var CellPlugin = class extends CorePlugin {
|
|
|
52264
52339
|
}
|
|
52265
52340
|
};
|
|
52266
52341
|
var FormulaCellWithDependencies = class {
|
|
52342
|
+
id;
|
|
52343
|
+
format;
|
|
52344
|
+
style;
|
|
52345
|
+
sheetId;
|
|
52346
|
+
getRangeString;
|
|
52267
52347
|
isFormula = true;
|
|
52268
52348
|
compiledFormula;
|
|
52269
52349
|
constructor(id, compiledFormula, format, style, dependencies, sheetId, getRangeString) {
|
|
@@ -52298,6 +52378,10 @@ var FormulaCellWithDependencies = class {
|
|
|
52298
52378
|
}
|
|
52299
52379
|
};
|
|
52300
52380
|
var RangeReferenceToken = class {
|
|
52381
|
+
ranges;
|
|
52382
|
+
rangeIndex;
|
|
52383
|
+
sheetId;
|
|
52384
|
+
getRangeString;
|
|
52301
52385
|
type = "REFERENCE";
|
|
52302
52386
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
52303
52387
|
this.ranges = ranges;
|
|
@@ -56109,6 +56193,8 @@ function buildCompilationParameters(context, getters, computeCell) {
|
|
|
56109
56193
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
56110
56194
|
}
|
|
56111
56195
|
var CompilationParametersBuilder = class {
|
|
56196
|
+
getters;
|
|
56197
|
+
computeCell;
|
|
56112
56198
|
evalContext;
|
|
56113
56199
|
rangeCache = {};
|
|
56114
56200
|
constructor(context, getters, computeCell) {
|
|
@@ -56562,6 +56648,7 @@ var ZoneRBush = class extends import_rbush_min.default {
|
|
|
56562
56648
|
* It uses an R-Tree data structure to efficiently find dependent cells.
|
|
56563
56649
|
*/
|
|
56564
56650
|
var FormulaDependencyGraph = class {
|
|
56651
|
+
createEmptyPositionSet;
|
|
56565
56652
|
dependencies = new PositionMap();
|
|
56566
56653
|
rTree;
|
|
56567
56654
|
constructor(createEmptyPositionSet, data = []) {
|
|
@@ -56863,6 +56950,7 @@ const MAX_ITERATION = 30;
|
|
|
56863
56950
|
const ERROR_CYCLE_CELL = Object.freeze(createEvaluatedCell(new CircularDependencyError()));
|
|
56864
56951
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
56865
56952
|
var Evaluator = class {
|
|
56953
|
+
context;
|
|
56866
56954
|
getters;
|
|
56867
56955
|
compilationParams;
|
|
56868
56956
|
evaluatedCells = new PositionMap();
|
|
@@ -58868,6 +58956,7 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
58868
58956
|
"getPivot",
|
|
58869
58957
|
"getFirstPivotFunction",
|
|
58870
58958
|
"getPivotIdFromPosition",
|
|
58959
|
+
"getPivotIdsFromPosition",
|
|
58871
58960
|
"getPivotCellFromPosition",
|
|
58872
58961
|
"generateNewCalculatedMeasureName",
|
|
58873
58962
|
"isPivotUnused",
|
|
@@ -58925,37 +59014,52 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
58925
59014
|
}
|
|
58926
59015
|
}
|
|
58927
59016
|
/**
|
|
58928
|
-
* Get the id of the pivot at the given position. Returns undefined if there
|
|
59017
|
+
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
58929
59018
|
* is no pivot at this position
|
|
58930
59019
|
*/
|
|
58931
59020
|
getPivotIdFromPosition(position) {
|
|
59021
|
+
return this.getPivotIdsFromPosition(position)[0];
|
|
59022
|
+
}
|
|
59023
|
+
/**
|
|
59024
|
+
* Get all of the ids of the pivot present in the formula at the given position.
|
|
59025
|
+
*/
|
|
59026
|
+
getPivotIdsFromPosition(position) {
|
|
58932
59027
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
58933
|
-
if (cell && cell.isFormula)
|
|
58934
|
-
|
|
58935
|
-
|
|
58936
|
-
|
|
58937
|
-
|
|
58938
|
-
|
|
58939
|
-
|
|
59028
|
+
if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
|
|
59029
|
+
return [];
|
|
59030
|
+
}
|
|
59031
|
+
getPivotIdsFromFormula(sheetId, formula) {
|
|
59032
|
+
return this.getPivotFunctions(sheetId, formula.tokens).map((pivotFunction) => {
|
|
59033
|
+
const pivotId = pivotFunction.args[0]?.toString();
|
|
59034
|
+
return pivotId && this.getters.getPivotId(pivotId);
|
|
59035
|
+
}).filter(isDefined);
|
|
58940
59036
|
}
|
|
58941
59037
|
isSpillPivotFormula(position) {
|
|
58942
59038
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
58943
59039
|
if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula.tokens)?.functionName === "PIVOT";
|
|
58944
59040
|
return false;
|
|
58945
59041
|
}
|
|
58946
|
-
|
|
58947
|
-
const
|
|
58948
|
-
if (!
|
|
58949
|
-
const
|
|
58950
|
-
|
|
58951
|
-
functionName,
|
|
58952
|
-
|
|
59042
|
+
getPivotFunctions(sheetId, tokens) {
|
|
59043
|
+
const pivotFunctions = getPivotFunctions(tokens);
|
|
59044
|
+
if (!pivotFunctions.length) return [];
|
|
59045
|
+
const evaluatedPivotFunctions = [];
|
|
59046
|
+
for (const pivotFunction of pivotFunctions) {
|
|
59047
|
+
const { functionName, args } = pivotFunction;
|
|
59048
|
+
const evaluatedArgs = args.map((argAst) => {
|
|
58953
59049
|
if (argAst.type === "EMPTY") return;
|
|
58954
59050
|
else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
|
|
58955
59051
|
const argsString = astToFormula(argAst);
|
|
58956
59052
|
return this.getters.evaluateFormula(sheetId, argsString);
|
|
58957
|
-
})
|
|
58958
|
-
|
|
59053
|
+
});
|
|
59054
|
+
evaluatedPivotFunctions.push({
|
|
59055
|
+
functionName,
|
|
59056
|
+
args: evaluatedArgs
|
|
59057
|
+
});
|
|
59058
|
+
}
|
|
59059
|
+
return evaluatedPivotFunctions;
|
|
59060
|
+
}
|
|
59061
|
+
getFirstPivotFunction(sheetId, tokens) {
|
|
59062
|
+
return this.getPivotFunctions(sheetId, tokens)[0];
|
|
58959
59063
|
}
|
|
58960
59064
|
/**
|
|
58961
59065
|
* Returns the domain args of a pivot formula from a position.
|
|
@@ -59049,8 +59153,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
59049
59153
|
const unusedPivots = new Set(this.getters.getPivotIds());
|
|
59050
59154
|
for (const sheetId of this.getters.getSheetIds()) for (const cellId in this.getters.getCells(sheetId)) {
|
|
59051
59155
|
const position = this.getters.getCellPosition(cellId);
|
|
59052
|
-
const
|
|
59053
|
-
|
|
59156
|
+
const pivotIds = this.getPivotIdsFromPosition(position);
|
|
59157
|
+
for (const pivotId of pivotIds) {
|
|
59054
59158
|
unusedPivots.delete(pivotId);
|
|
59055
59159
|
if (!unusedPivots.size) {
|
|
59056
59160
|
this.unusedPivots = [];
|
|
@@ -59058,6 +59162,21 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
59058
59162
|
}
|
|
59059
59163
|
}
|
|
59060
59164
|
}
|
|
59165
|
+
for (const pivotId of this.getters.getPivotIds()) {
|
|
59166
|
+
const pivot = this.getters.getPivot(pivotId);
|
|
59167
|
+
for (const measure of pivot.definition.measures) if (measure.computedBy) {
|
|
59168
|
+
const { sheetId } = measure.computedBy;
|
|
59169
|
+
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
59170
|
+
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
59171
|
+
for (const relatedPivotId of relatedPivotIds) {
|
|
59172
|
+
unusedPivots.delete(relatedPivotId);
|
|
59173
|
+
if (!unusedPivots.size) {
|
|
59174
|
+
this.unusedPivots = [];
|
|
59175
|
+
return [];
|
|
59176
|
+
}
|
|
59177
|
+
}
|
|
59178
|
+
}
|
|
59179
|
+
}
|
|
59061
59180
|
this.unusedPivots = [...unusedPivots];
|
|
59062
59181
|
return this.unusedPivots;
|
|
59063
59182
|
}
|
|
@@ -60311,6 +60430,8 @@ function transformPositionWithMerge(toTransform, executed) {
|
|
|
60311
60430
|
//#endregion
|
|
60312
60431
|
//#region src/collaborative/revisions.ts
|
|
60313
60432
|
var Revision = class {
|
|
60433
|
+
rootCommand;
|
|
60434
|
+
timestamp;
|
|
60314
60435
|
id;
|
|
60315
60436
|
clientId;
|
|
60316
60437
|
_commands = [];
|
|
@@ -60347,6 +60468,9 @@ var Revision = class {
|
|
|
60347
60468
|
//#region src/collaborative/session.ts
|
|
60348
60469
|
var ClientDisconnectedError = class extends Error {};
|
|
60349
60470
|
var Session = class extends EventBus {
|
|
60471
|
+
revisions;
|
|
60472
|
+
transportService;
|
|
60473
|
+
serverRevisionId;
|
|
60350
60474
|
/**
|
|
60351
60475
|
* Positions of the others client.
|
|
60352
60476
|
*/
|
|
@@ -63920,6 +64044,9 @@ var GridSelectionPlugin = class extends UIPlugin {
|
|
|
63920
64044
|
//#endregion
|
|
63921
64045
|
//#region src/helpers/internal_viewport.ts
|
|
63922
64046
|
var InternalViewport = class {
|
|
64047
|
+
getters;
|
|
64048
|
+
sheetId;
|
|
64049
|
+
boundaries;
|
|
63923
64050
|
top;
|
|
63924
64051
|
bottom;
|
|
63925
64052
|
left;
|
|
@@ -67533,6 +67660,7 @@ function instantiateClipboard() {
|
|
|
67533
67660
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
67534
67661
|
}
|
|
67535
67662
|
var WebClipboardWrapper = class {
|
|
67663
|
+
clipboard;
|
|
67536
67664
|
constructor(clipboard) {
|
|
67537
67665
|
this.clipboard = clipboard;
|
|
67538
67666
|
}
|
|
@@ -68021,6 +68149,8 @@ function inverseCommand(cmd) {
|
|
|
68021
68149
|
* @param operations initial operations
|
|
68022
68150
|
*/
|
|
68023
68151
|
var Branch = class Branch {
|
|
68152
|
+
buildTransformation;
|
|
68153
|
+
operations;
|
|
68024
68154
|
constructor(buildTransformation, operations = []) {
|
|
68025
68155
|
this.buildTransformation = buildTransformation;
|
|
68026
68156
|
this.operations = operations;
|
|
@@ -68137,6 +68267,8 @@ var Branch = class Branch {
|
|
|
68137
68267
|
* to revert it).
|
|
68138
68268
|
*/
|
|
68139
68269
|
var Operation = class {
|
|
68270
|
+
id;
|
|
68271
|
+
data;
|
|
68140
68272
|
constructor(id, data) {
|
|
68141
68273
|
this.id = id;
|
|
68142
68274
|
this.data = data;
|
|
@@ -68146,6 +68278,8 @@ var Operation = class {
|
|
|
68146
68278
|
}
|
|
68147
68279
|
};
|
|
68148
68280
|
var LazyOperation = class LazyOperation {
|
|
68281
|
+
id;
|
|
68282
|
+
lazyData;
|
|
68149
68283
|
constructor(id, lazyData) {
|
|
68150
68284
|
this.id = id;
|
|
68151
68285
|
this.lazyData = lazyData;
|
|
@@ -68171,6 +68305,7 @@ var LazyOperation = class LazyOperation {
|
|
|
68171
68305
|
* ```
|
|
68172
68306
|
*/
|
|
68173
68307
|
var OperationSequence = class OperationSequence {
|
|
68308
|
+
operations;
|
|
68174
68309
|
constructor(operations) {
|
|
68175
68310
|
this.operations = operations;
|
|
68176
68311
|
}
|
|
@@ -68246,6 +68381,7 @@ var OperationSequence = class OperationSequence {
|
|
|
68246
68381
|
*
|
|
68247
68382
|
*/
|
|
68248
68383
|
var Tree = class {
|
|
68384
|
+
buildTransformation;
|
|
68249
68385
|
branches;
|
|
68250
68386
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
68251
68387
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -68828,6 +68964,7 @@ var EventStream = class {
|
|
|
68828
68964
|
* with the new selected anchor
|
|
68829
68965
|
*/
|
|
68830
68966
|
var SelectionStreamProcessorImpl = class {
|
|
68967
|
+
getters;
|
|
68831
68968
|
stream;
|
|
68832
68969
|
/**
|
|
68833
68970
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -72083,6 +72220,6 @@ const chartHelpers = {
|
|
|
72083
72220
|
//#endregion
|
|
72084
72221
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, CoreViewPlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, chartHelpers, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
72085
72222
|
|
|
72086
|
-
__info__.version = "18.3.
|
|
72087
|
-
__info__.date = "2026-05-
|
|
72088
|
-
__info__.hash = "
|
|
72223
|
+
__info__.version = "18.3.49";
|
|
72224
|
+
__info__.date = "2026-05-27T05:57:05.809Z";
|
|
72225
|
+
__info__.hash = "fc34456";
|