@odoo/o-spreadsheet 19.0.34 → 19.0.36
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 +237 -237
- 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.0.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.36
|
|
6
|
+
* @date 2026-05-27T05:57:35.932Z
|
|
7
|
+
* @hash 3f73c94
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -1432,6 +1432,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
1432
1432
|
else return ALTERNATING_COLORS_XL;
|
|
1433
1433
|
}
|
|
1434
1434
|
var ColorGenerator = class {
|
|
1435
|
+
preferredColors;
|
|
1435
1436
|
currentColorIndex = 0;
|
|
1436
1437
|
palette;
|
|
1437
1438
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -1639,6 +1640,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
1639
1640
|
return sprintf(_translate(s), ...values);
|
|
1640
1641
|
};
|
|
1641
1642
|
var LazyTranslatedString = class extends String {
|
|
1643
|
+
values;
|
|
1642
1644
|
constructor(str, values) {
|
|
1643
1645
|
super(str);
|
|
1644
1646
|
this.values = values;
|
|
@@ -2797,6 +2799,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2797
2799
|
};
|
|
2798
2800
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
2799
2801
|
var EvaluationError = class {
|
|
2802
|
+
message;
|
|
2803
|
+
value;
|
|
2800
2804
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
2801
2805
|
this.message = message;
|
|
2802
2806
|
this.value = value;
|
|
@@ -2829,6 +2833,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2829
2833
|
}
|
|
2830
2834
|
};
|
|
2831
2835
|
var SplillBlockedError = class extends EvaluationError {
|
|
2836
|
+
errorOriginPosition;
|
|
2832
2837
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
2833
2838
|
super(message, CellErrorType.SpilledBlocked);
|
|
2834
2839
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -5817,8 +5822,13 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5817
5822
|
changeType: "NONE",
|
|
5818
5823
|
range
|
|
5819
5824
|
};
|
|
5825
|
+
const isUnboundedAtEnd = range.unboundedZone[end] === void 0;
|
|
5826
|
+
if (isUnboundedAtEnd && !range.unboundedZone.hasHeader) return {
|
|
5827
|
+
changeType: "RESIZE",
|
|
5828
|
+
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
5829
|
+
};
|
|
5820
5830
|
if (cmd.position === "after") {
|
|
5821
|
-
if (range.zone[start] <= cmd.base && cmd.base < range.zone[end]) return {
|
|
5831
|
+
if (range.zone[start] <= cmd.base && (cmd.base < range.zone[end] || isUnboundedAtEnd)) return {
|
|
5822
5832
|
changeType: "RESIZE",
|
|
5823
5833
|
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
5824
5834
|
};
|
|
@@ -6461,6 +6471,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
6461
6471
|
//#endregion
|
|
6462
6472
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
6463
6473
|
var ClipboardHandler = class {
|
|
6474
|
+
getters;
|
|
6475
|
+
dispatch;
|
|
6464
6476
|
constructor(getters, dispatch) {
|
|
6465
6477
|
this.getters = getters;
|
|
6466
6478
|
this.dispatch = dispatch;
|
|
@@ -8895,6 +8907,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
8895
8907
|
}
|
|
8896
8908
|
};
|
|
8897
8909
|
var StoreFactory = class {
|
|
8910
|
+
get;
|
|
8898
8911
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
8899
8912
|
constructor(get) {
|
|
8900
8913
|
this.get = get;
|
|
@@ -8939,6 +8952,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8939
8952
|
return MetaStore;
|
|
8940
8953
|
}
|
|
8941
8954
|
var DisposableStore = class {
|
|
8955
|
+
get;
|
|
8942
8956
|
disposeCallbacks = [];
|
|
8943
8957
|
constructor(get) {
|
|
8944
8958
|
this.get = get;
|
|
@@ -9513,6 +9527,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
9513
9527
|
ROUNDDOWN: [{
|
|
9514
9528
|
type: "NUMBER",
|
|
9515
9529
|
value: 0
|
|
9530
|
+
}],
|
|
9531
|
+
IFERROR: [{
|
|
9532
|
+
type: "NUMBER",
|
|
9533
|
+
value: 0
|
|
9516
9534
|
}]
|
|
9517
9535
|
};
|
|
9518
9536
|
/**
|
|
@@ -18622,6 +18640,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
18622
18640
|
//#endregion
|
|
18623
18641
|
//#region src/formulas/code_builder.ts
|
|
18624
18642
|
var FunctionCodeBuilder = class {
|
|
18643
|
+
scope;
|
|
18625
18644
|
code = "";
|
|
18626
18645
|
constructor(scope = new Scope()) {
|
|
18627
18646
|
this.scope = scope;
|
|
@@ -18637,6 +18656,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
18637
18656
|
}
|
|
18638
18657
|
};
|
|
18639
18658
|
var FunctionCodeImpl = class {
|
|
18659
|
+
scope;
|
|
18660
|
+
returnExpression;
|
|
18640
18661
|
code;
|
|
18641
18662
|
constructor(scope, code, returnExpression) {
|
|
18642
18663
|
this.scope = scope;
|
|
@@ -20607,6 +20628,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
20607
20628
|
}, runtime).computeDesign();
|
|
20608
20629
|
}
|
|
20609
20630
|
var ScorecardChartConfigBuilder = class {
|
|
20631
|
+
runtime;
|
|
20610
20632
|
context;
|
|
20611
20633
|
width;
|
|
20612
20634
|
height;
|
|
@@ -24267,6 +24289,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24267
24289
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
24268
24290
|
*/
|
|
24269
24291
|
var Animation = class {
|
|
24292
|
+
startValue;
|
|
24293
|
+
endValue;
|
|
24294
|
+
duration;
|
|
24295
|
+
callback;
|
|
24270
24296
|
startTime = void 0;
|
|
24271
24297
|
animationFrameId = null;
|
|
24272
24298
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -26593,6 +26619,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
26593
26619
|
* Represent a raw XML string
|
|
26594
26620
|
*/
|
|
26595
26621
|
var XMLString = class {
|
|
26622
|
+
xmlString;
|
|
26596
26623
|
/**
|
|
26597
26624
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
26598
26625
|
*/
|
|
@@ -27428,6 +27455,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
27428
27455
|
}
|
|
27429
27456
|
};
|
|
27430
27457
|
var PopoverPositionContext = class {
|
|
27458
|
+
anchorRect;
|
|
27459
|
+
containerRect;
|
|
27460
|
+
propsMaxSize;
|
|
27461
|
+
spreadsheetOffset;
|
|
27462
|
+
lastPosition;
|
|
27431
27463
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
27432
27464
|
this.anchorRect = anchorRect;
|
|
27433
27465
|
this.containerRect = containerRect;
|
|
@@ -30723,6 +30755,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
30723
30755
|
//#endregion
|
|
30724
30756
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
30725
30757
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
30758
|
+
args;
|
|
30726
30759
|
constructor(get, args) {
|
|
30727
30760
|
super(get);
|
|
30728
30761
|
this.args = args;
|
|
@@ -31774,6 +31807,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31774
31807
|
}
|
|
31775
31808
|
};
|
|
31776
31809
|
var ContainerWrapper = class {
|
|
31810
|
+
el;
|
|
31777
31811
|
constructor(el) {
|
|
31778
31812
|
this.el = el;
|
|
31779
31813
|
}
|
|
@@ -31845,6 +31879,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31845
31879
|
* This plugin handles this internal state.
|
|
31846
31880
|
*/
|
|
31847
31881
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
31882
|
+
initialRanges;
|
|
31883
|
+
inputHasSingleRange;
|
|
31884
|
+
colors;
|
|
31885
|
+
disabledRanges;
|
|
31848
31886
|
mutators = [
|
|
31849
31887
|
"resetWithRanges",
|
|
31850
31888
|
"focusById",
|
|
@@ -40666,13 +40704,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
40666
40704
|
break;
|
|
40667
40705
|
}
|
|
40668
40706
|
return {
|
|
40707
|
+
/**
|
|
40708
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
40709
|
+
*/
|
|
40669
40710
|
id: measure.id,
|
|
40711
|
+
/**
|
|
40712
|
+
* Display name of the measure
|
|
40713
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
40714
|
+
*/
|
|
40670
40715
|
get displayName() {
|
|
40671
40716
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
40672
40717
|
},
|
|
40673
40718
|
userDefinedName: measure.userDefinedName,
|
|
40719
|
+
/**
|
|
40720
|
+
* Get the name of the field of the measure
|
|
40721
|
+
*/
|
|
40674
40722
|
fieldName,
|
|
40723
|
+
/**
|
|
40724
|
+
* Get the aggregator of the measure
|
|
40725
|
+
*/
|
|
40675
40726
|
aggregator,
|
|
40727
|
+
/**
|
|
40728
|
+
* Get the type of the measure field
|
|
40729
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
40730
|
+
*/
|
|
40676
40731
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
40677
40732
|
isValid,
|
|
40678
40733
|
isHidden: measure.isHidden,
|
|
@@ -40686,10 +40741,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
40686
40741
|
const type = field?.type ?? "integer";
|
|
40687
40742
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
40688
40743
|
return {
|
|
40744
|
+
/**
|
|
40745
|
+
* Get the display name of the dimension
|
|
40746
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
40747
|
+
*/
|
|
40689
40748
|
displayName: field?.string ?? dimension.fieldName,
|
|
40749
|
+
/**
|
|
40750
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
40751
|
+
* e.g. "stage_id", "create_date:month"
|
|
40752
|
+
*/
|
|
40690
40753
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
40754
|
+
/**
|
|
40755
|
+
* Get the name of the field of the dimension
|
|
40756
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
40757
|
+
*/
|
|
40691
40758
|
fieldName: dimension.fieldName,
|
|
40759
|
+
/**
|
|
40760
|
+
* Get the aggregate operator of the dimension
|
|
40761
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
40762
|
+
*/
|
|
40692
40763
|
granularity,
|
|
40764
|
+
/**
|
|
40765
|
+
* Get the type of the field of the dimension
|
|
40766
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
40767
|
+
*/
|
|
40693
40768
|
type: field?.isCustomField ? "custom" : type,
|
|
40694
40769
|
order: dimension.order,
|
|
40695
40770
|
isValid: !!field,
|
|
@@ -51860,6 +51935,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51860
51935
|
//#endregion
|
|
51861
51936
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
51862
51937
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
51938
|
+
pivotId;
|
|
51939
|
+
initialMeasure;
|
|
51863
51940
|
mutators = [
|
|
51864
51941
|
"cancelMeasureDisplayEdition",
|
|
51865
51942
|
"updateMeasureDisplayType",
|
|
@@ -52059,7 +52136,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
52059
52136
|
col,
|
|
52060
52137
|
row
|
|
52061
52138
|
};
|
|
52062
|
-
if (
|
|
52139
|
+
if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
|
|
52063
52140
|
}
|
|
52064
52141
|
return positions;
|
|
52065
52142
|
}
|
|
@@ -52945,6 +53022,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
52945
53022
|
function getFirstPivotFunction(tokens) {
|
|
52946
53023
|
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS)[0];
|
|
52947
53024
|
}
|
|
53025
|
+
function getPivotFunctions(tokens) {
|
|
53026
|
+
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS);
|
|
53027
|
+
}
|
|
52948
53028
|
/**
|
|
52949
53029
|
* Parse a spreadsheet formula and detect the number of PIVOT functions that are
|
|
52950
53030
|
* present in the given formula.
|
|
@@ -52956,6 +53036,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
52956
53036
|
//#endregion
|
|
52957
53037
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
52958
53038
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
53039
|
+
pivotId;
|
|
52959
53040
|
mutators = [
|
|
52960
53041
|
"reset",
|
|
52961
53042
|
"deferUpdates",
|
|
@@ -56487,6 +56568,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56487
56568
|
}
|
|
56488
56569
|
};
|
|
56489
56570
|
var FormulaCellWithDependencies = class {
|
|
56571
|
+
id;
|
|
56572
|
+
format;
|
|
56573
|
+
style;
|
|
56574
|
+
sheetId;
|
|
56575
|
+
getRangeString;
|
|
56490
56576
|
isFormula = true;
|
|
56491
56577
|
compiledFormula;
|
|
56492
56578
|
constructor(id, compiledFormula, format, style, dependencies, sheetId, getRangeString) {
|
|
@@ -56521,6 +56607,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
56521
56607
|
}
|
|
56522
56608
|
};
|
|
56523
56609
|
var RangeReferenceToken = class {
|
|
56610
|
+
ranges;
|
|
56611
|
+
rangeIndex;
|
|
56612
|
+
sheetId;
|
|
56613
|
+
getRangeString;
|
|
56524
56614
|
type = "REFERENCE";
|
|
56525
56615
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
56526
56616
|
this.ranges = ranges;
|
|
@@ -60506,6 +60596,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
60506
60596
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
60507
60597
|
}
|
|
60508
60598
|
var CompilationParametersBuilder = class {
|
|
60599
|
+
getters;
|
|
60600
|
+
computeCell;
|
|
60509
60601
|
evalContext;
|
|
60510
60602
|
rangeCache = {};
|
|
60511
60603
|
constructor(context, getters, computeCell) {
|
|
@@ -61439,6 +61531,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61439
61531
|
}));
|
|
61440
61532
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
61441
61533
|
var Evaluator = class {
|
|
61534
|
+
context;
|
|
61442
61535
|
getters;
|
|
61443
61536
|
compilationParams;
|
|
61444
61537
|
evaluatedCells = new PositionMap();
|
|
@@ -63747,6 +63840,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63747
63840
|
"getFirstPivotFunction",
|
|
63748
63841
|
"getPivotCellSortDirection",
|
|
63749
63842
|
"getPivotIdFromPosition",
|
|
63843
|
+
"getPivotIdsFromPosition",
|
|
63750
63844
|
"getPivotCellFromPosition",
|
|
63751
63845
|
"generateNewCalculatedMeasureName",
|
|
63752
63846
|
"isPivotUnused",
|
|
@@ -63804,37 +63898,52 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63804
63898
|
}
|
|
63805
63899
|
}
|
|
63806
63900
|
/**
|
|
63807
|
-
* Get the id of the pivot at the given position. Returns undefined if there
|
|
63901
|
+
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
63808
63902
|
* is no pivot at this position
|
|
63809
63903
|
*/
|
|
63810
63904
|
getPivotIdFromPosition(position) {
|
|
63905
|
+
return this.getPivotIdsFromPosition(position)[0];
|
|
63906
|
+
}
|
|
63907
|
+
/**
|
|
63908
|
+
* Get all of the ids of the pivot present in the formula at the given position.
|
|
63909
|
+
*/
|
|
63910
|
+
getPivotIdsFromPosition(position) {
|
|
63811
63911
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
63812
|
-
if (cell && cell.isFormula)
|
|
63813
|
-
|
|
63814
|
-
|
|
63815
|
-
|
|
63816
|
-
|
|
63817
|
-
|
|
63818
|
-
|
|
63912
|
+
if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
|
|
63913
|
+
return [];
|
|
63914
|
+
}
|
|
63915
|
+
getPivotIdsFromFormula(sheetId, formula) {
|
|
63916
|
+
return this.getPivotFunctions(sheetId, formula.tokens).map((pivotFunction) => {
|
|
63917
|
+
const pivotId = pivotFunction.args[0]?.toString();
|
|
63918
|
+
return pivotId && this.getters.getPivotId(pivotId);
|
|
63919
|
+
}).filter(isDefined);
|
|
63819
63920
|
}
|
|
63820
63921
|
isSpillPivotFormula(position) {
|
|
63821
63922
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
63822
63923
|
if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula.tokens)?.functionName === "PIVOT";
|
|
63823
63924
|
return false;
|
|
63824
63925
|
}
|
|
63825
|
-
|
|
63826
|
-
const
|
|
63827
|
-
if (!
|
|
63828
|
-
const
|
|
63829
|
-
|
|
63830
|
-
functionName,
|
|
63831
|
-
|
|
63926
|
+
getPivotFunctions(sheetId, tokens) {
|
|
63927
|
+
const pivotFunctions = getPivotFunctions(tokens);
|
|
63928
|
+
if (!pivotFunctions.length) return [];
|
|
63929
|
+
const evaluatedPivotFunctions = [];
|
|
63930
|
+
for (const pivotFunction of pivotFunctions) {
|
|
63931
|
+
const { functionName, args } = pivotFunction;
|
|
63932
|
+
const evaluatedArgs = args.map((argAst) => {
|
|
63832
63933
|
if (argAst.type === "EMPTY") return;
|
|
63833
63934
|
else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
|
|
63834
63935
|
const argsString = astToFormula(argAst);
|
|
63835
63936
|
return this.getters.evaluateFormula(sheetId, argsString);
|
|
63836
|
-
})
|
|
63837
|
-
|
|
63937
|
+
});
|
|
63938
|
+
evaluatedPivotFunctions.push({
|
|
63939
|
+
functionName,
|
|
63940
|
+
args: evaluatedArgs
|
|
63941
|
+
});
|
|
63942
|
+
}
|
|
63943
|
+
return evaluatedPivotFunctions;
|
|
63944
|
+
}
|
|
63945
|
+
getFirstPivotFunction(sheetId, tokens) {
|
|
63946
|
+
return this.getPivotFunctions(sheetId, tokens)[0];
|
|
63838
63947
|
}
|
|
63839
63948
|
/**
|
|
63840
63949
|
* Returns the domain args of a pivot formula from a position.
|
|
@@ -63948,8 +64057,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63948
64057
|
const unusedPivots = new Set(this.getters.getPivotIds());
|
|
63949
64058
|
for (const sheetId of this.getters.getSheetIds()) for (const cellId in this.getters.getCells(sheetId)) {
|
|
63950
64059
|
const position = this.getters.getCellPosition(cellId);
|
|
63951
|
-
const
|
|
63952
|
-
|
|
64060
|
+
const pivotIds = this.getPivotIdsFromPosition(position);
|
|
64061
|
+
for (const pivotId of pivotIds) {
|
|
63953
64062
|
unusedPivots.delete(pivotId);
|
|
63954
64063
|
if (!unusedPivots.size) {
|
|
63955
64064
|
this.unusedPivots = [];
|
|
@@ -63957,6 +64066,21 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63957
64066
|
}
|
|
63958
64067
|
}
|
|
63959
64068
|
}
|
|
64069
|
+
for (const pivotId of this.getters.getPivotIds()) {
|
|
64070
|
+
const pivot = this.getters.getPivot(pivotId);
|
|
64071
|
+
for (const measure of pivot.definition.measures) if (measure.computedBy) {
|
|
64072
|
+
const { sheetId } = measure.computedBy;
|
|
64073
|
+
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
64074
|
+
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
64075
|
+
for (const relatedPivotId of relatedPivotIds) {
|
|
64076
|
+
unusedPivots.delete(relatedPivotId);
|
|
64077
|
+
if (!unusedPivots.size) {
|
|
64078
|
+
this.unusedPivots = [];
|
|
64079
|
+
return [];
|
|
64080
|
+
}
|
|
64081
|
+
}
|
|
64082
|
+
}
|
|
64083
|
+
}
|
|
63960
64084
|
this.unusedPivots = [...unusedPivots];
|
|
63961
64085
|
return this.unusedPivots;
|
|
63962
64086
|
}
|
|
@@ -65559,6 +65683,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65559
65683
|
//#endregion
|
|
65560
65684
|
//#region src/collaborative/revisions.ts
|
|
65561
65685
|
var Revision = class {
|
|
65686
|
+
rootCommand;
|
|
65687
|
+
timestamp;
|
|
65562
65688
|
id;
|
|
65563
65689
|
clientId;
|
|
65564
65690
|
_commands = [];
|
|
@@ -65595,6 +65721,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65595
65721
|
//#region src/collaborative/session.ts
|
|
65596
65722
|
var ClientDisconnectedError = class extends Error {};
|
|
65597
65723
|
var Session = class extends EventBus {
|
|
65724
|
+
revisions;
|
|
65725
|
+
transportService;
|
|
65726
|
+
serverRevisionId;
|
|
65598
65727
|
/**
|
|
65599
65728
|
* Positions of the others client.
|
|
65600
65729
|
*/
|
|
@@ -69311,6 +69440,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
69311
69440
|
//#endregion
|
|
69312
69441
|
//#region src/helpers/internal_viewport.ts
|
|
69313
69442
|
var InternalViewport = class {
|
|
69443
|
+
getters;
|
|
69444
|
+
sheetId;
|
|
69445
|
+
boundaries;
|
|
69314
69446
|
top;
|
|
69315
69447
|
bottom;
|
|
69316
69448
|
left;
|
|
@@ -74446,6 +74578,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74446
74578
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
74447
74579
|
}
|
|
74448
74580
|
var WebClipboardWrapper = class {
|
|
74581
|
+
clipboard;
|
|
74449
74582
|
constructor(clipboard) {
|
|
74450
74583
|
this.clipboard = clipboard;
|
|
74451
74584
|
}
|
|
@@ -74932,6 +75065,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74932
75065
|
//#endregion
|
|
74933
75066
|
//#region src/collaborative/readonly_transport_filter.ts
|
|
74934
75067
|
var ReadonlyTransportFilter = class {
|
|
75068
|
+
transportService;
|
|
74935
75069
|
constructor(transportService) {
|
|
74936
75070
|
this.transportService = transportService;
|
|
74937
75071
|
}
|
|
@@ -74963,6 +75097,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
74963
75097
|
* @param operations initial operations
|
|
74964
75098
|
*/
|
|
74965
75099
|
var Branch = class Branch {
|
|
75100
|
+
buildTransformation;
|
|
75101
|
+
operations;
|
|
74966
75102
|
constructor(buildTransformation, operations = []) {
|
|
74967
75103
|
this.buildTransformation = buildTransformation;
|
|
74968
75104
|
this.operations = operations;
|
|
@@ -75079,6 +75215,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
75079
75215
|
* to revert it).
|
|
75080
75216
|
*/
|
|
75081
75217
|
var Operation = class {
|
|
75218
|
+
id;
|
|
75219
|
+
data;
|
|
75082
75220
|
constructor(id, data) {
|
|
75083
75221
|
this.id = id;
|
|
75084
75222
|
this.data = data;
|
|
@@ -75088,6 +75226,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
75088
75226
|
}
|
|
75089
75227
|
};
|
|
75090
75228
|
var LazyOperation = class LazyOperation {
|
|
75229
|
+
id;
|
|
75230
|
+
lazyData;
|
|
75091
75231
|
constructor(id, lazyData) {
|
|
75092
75232
|
this.id = id;
|
|
75093
75233
|
this.lazyData = lazyData;
|
|
@@ -75113,6 +75253,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
75113
75253
|
* ```
|
|
75114
75254
|
*/
|
|
75115
75255
|
var OperationSequence = class OperationSequence {
|
|
75256
|
+
operations;
|
|
75116
75257
|
constructor(operations) {
|
|
75117
75258
|
this.operations = operations;
|
|
75118
75259
|
}
|
|
@@ -75188,6 +75329,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
75188
75329
|
*
|
|
75189
75330
|
*/
|
|
75190
75331
|
var Tree = class {
|
|
75332
|
+
buildTransformation;
|
|
75191
75333
|
branches;
|
|
75192
75334
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
75193
75335
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -75767,6 +75909,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
75767
75909
|
* with the new selected anchor
|
|
75768
75910
|
*/
|
|
75769
75911
|
var SelectionStreamProcessorImpl = class {
|
|
75912
|
+
getters;
|
|
75770
75913
|
stream;
|
|
75771
75914
|
/**
|
|
75772
75915
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -79233,8 +79376,8 @@ exports.stores = stores;
|
|
|
79233
79376
|
exports.tokenColors = tokenColors;
|
|
79234
79377
|
exports.tokenize = tokenize;
|
|
79235
79378
|
|
|
79236
|
-
__info__.version = "19.0.
|
|
79237
|
-
__info__.date = "2026-05-
|
|
79238
|
-
__info__.hash = "
|
|
79379
|
+
__info__.version = "19.0.36";
|
|
79380
|
+
__info__.date = "2026-05-27T05:57:35.932Z";
|
|
79381
|
+
__info__.hash = "3f73c94";
|
|
79239
79382
|
|
|
79240
79383
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|