@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
|
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";
|
|
@@ -1430,6 +1430,7 @@ function getAlternatingColorsPalette(quantity) {
|
|
|
1430
1430
|
else return ALTERNATING_COLORS_XL;
|
|
1431
1431
|
}
|
|
1432
1432
|
var ColorGenerator = class {
|
|
1433
|
+
preferredColors;
|
|
1433
1434
|
currentColorIndex = 0;
|
|
1434
1435
|
palette;
|
|
1435
1436
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -1637,6 +1638,7 @@ const _t = function(s, ...values) {
|
|
|
1637
1638
|
return sprintf(_translate(s), ...values);
|
|
1638
1639
|
};
|
|
1639
1640
|
var LazyTranslatedString = class extends String {
|
|
1641
|
+
values;
|
|
1640
1642
|
constructor(str, values) {
|
|
1641
1643
|
super(str);
|
|
1642
1644
|
this.values = values;
|
|
@@ -2795,6 +2797,8 @@ const CellErrorType = {
|
|
|
2795
2797
|
};
|
|
2796
2798
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
2797
2799
|
var EvaluationError = class {
|
|
2800
|
+
message;
|
|
2801
|
+
value;
|
|
2798
2802
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
2799
2803
|
this.message = message;
|
|
2800
2804
|
this.value = value;
|
|
@@ -2827,6 +2831,7 @@ var UnknownFunctionError = class extends EvaluationError {
|
|
|
2827
2831
|
}
|
|
2828
2832
|
};
|
|
2829
2833
|
var SplillBlockedError = class extends EvaluationError {
|
|
2834
|
+
errorOriginPosition;
|
|
2830
2835
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
2831
2836
|
super(message, CellErrorType.SpilledBlocked);
|
|
2832
2837
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -5815,8 +5820,13 @@ function getApplyRangeChangeAddColRow(cmd) {
|
|
|
5815
5820
|
changeType: "NONE",
|
|
5816
5821
|
range
|
|
5817
5822
|
};
|
|
5823
|
+
const isUnboundedAtEnd = range.unboundedZone[end] === void 0;
|
|
5824
|
+
if (isUnboundedAtEnd && !range.unboundedZone.hasHeader) return {
|
|
5825
|
+
changeType: "RESIZE",
|
|
5826
|
+
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
5827
|
+
};
|
|
5818
5828
|
if (cmd.position === "after") {
|
|
5819
|
-
if (range.zone[start] <= cmd.base && cmd.base < range.zone[end]) return {
|
|
5829
|
+
if (range.zone[start] <= cmd.base && (cmd.base < range.zone[end] || isUnboundedAtEnd)) return {
|
|
5820
5830
|
changeType: "RESIZE",
|
|
5821
5831
|
range: createAdaptedRange(range, dimension, "RESIZE", cmd.quantity)
|
|
5822
5832
|
};
|
|
@@ -6459,6 +6469,8 @@ const selectPastedZone = (selection, sourceZones, pastedZones) => {
|
|
|
6459
6469
|
//#endregion
|
|
6460
6470
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
6461
6471
|
var ClipboardHandler = class {
|
|
6472
|
+
getters;
|
|
6473
|
+
dispatch;
|
|
6462
6474
|
constructor(getters, dispatch) {
|
|
6463
6475
|
this.getters = getters;
|
|
6464
6476
|
this.dispatch = dispatch;
|
|
@@ -8893,6 +8905,7 @@ var DependencyContainer = class extends EventBus {
|
|
|
8893
8905
|
}
|
|
8894
8906
|
};
|
|
8895
8907
|
var StoreFactory = class {
|
|
8908
|
+
get;
|
|
8896
8909
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
8897
8910
|
constructor(get) {
|
|
8898
8911
|
this.get = get;
|
|
@@ -8937,6 +8950,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8937
8950
|
return MetaStore;
|
|
8938
8951
|
}
|
|
8939
8952
|
var DisposableStore = class {
|
|
8953
|
+
get;
|
|
8940
8954
|
disposeCallbacks = [];
|
|
8941
8955
|
constructor(get) {
|
|
8942
8956
|
this.get = get;
|
|
@@ -9511,6 +9525,10 @@ const FORCE_DEFAULT_ARGS_FUNCTIONS = {
|
|
|
9511
9525
|
ROUNDDOWN: [{
|
|
9512
9526
|
type: "NUMBER",
|
|
9513
9527
|
value: 0
|
|
9528
|
+
}],
|
|
9529
|
+
IFERROR: [{
|
|
9530
|
+
type: "NUMBER",
|
|
9531
|
+
value: 0
|
|
9514
9532
|
}]
|
|
9515
9533
|
};
|
|
9516
9534
|
/**
|
|
@@ -18620,6 +18638,7 @@ function insertTokenAtArgStartingPosition(tokenAtCursor, value) {
|
|
|
18620
18638
|
//#endregion
|
|
18621
18639
|
//#region src/formulas/code_builder.ts
|
|
18622
18640
|
var FunctionCodeBuilder = class {
|
|
18641
|
+
scope;
|
|
18623
18642
|
code = "";
|
|
18624
18643
|
constructor(scope = new Scope()) {
|
|
18625
18644
|
this.scope = scope;
|
|
@@ -18635,6 +18654,8 @@ var FunctionCodeBuilder = class {
|
|
|
18635
18654
|
}
|
|
18636
18655
|
};
|
|
18637
18656
|
var FunctionCodeImpl = class {
|
|
18657
|
+
scope;
|
|
18658
|
+
returnExpression;
|
|
18638
18659
|
code;
|
|
18639
18660
|
constructor(scope, code, returnExpression) {
|
|
18640
18661
|
this.scope = scope;
|
|
@@ -20605,6 +20626,7 @@ function getScorecardConfiguration({ width, height }, runtime) {
|
|
|
20605
20626
|
}, runtime).computeDesign();
|
|
20606
20627
|
}
|
|
20607
20628
|
var ScorecardChartConfigBuilder = class {
|
|
20629
|
+
runtime;
|
|
20608
20630
|
context;
|
|
20609
20631
|
width;
|
|
20610
20632
|
height;
|
|
@@ -24265,6 +24287,10 @@ var GaugeChartComponent = class extends Component {
|
|
|
24265
24287
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
24266
24288
|
*/
|
|
24267
24289
|
var Animation = class {
|
|
24290
|
+
startValue;
|
|
24291
|
+
endValue;
|
|
24292
|
+
duration;
|
|
24293
|
+
callback;
|
|
24268
24294
|
startTime = void 0;
|
|
24269
24295
|
animationFrameId = null;
|
|
24270
24296
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -26591,6 +26617,7 @@ function getMaxFigureSize(getters, figureSize) {
|
|
|
26591
26617
|
* Represent a raw XML string
|
|
26592
26618
|
*/
|
|
26593
26619
|
var XMLString = class {
|
|
26620
|
+
xmlString;
|
|
26594
26621
|
/**
|
|
26595
26622
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
26596
26623
|
*/
|
|
@@ -27426,6 +27453,11 @@ var Popover = class extends Component {
|
|
|
27426
27453
|
}
|
|
27427
27454
|
};
|
|
27428
27455
|
var PopoverPositionContext = class {
|
|
27456
|
+
anchorRect;
|
|
27457
|
+
containerRect;
|
|
27458
|
+
propsMaxSize;
|
|
27459
|
+
spreadsheetOffset;
|
|
27460
|
+
lastPosition;
|
|
27429
27461
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
27430
27462
|
this.anchorRect = anchorRect;
|
|
27431
27463
|
this.containerRect = containerRect;
|
|
@@ -30721,6 +30753,7 @@ var AbstractComposerStore = class extends SpreadsheetStore {
|
|
|
30721
30753
|
//#endregion
|
|
30722
30754
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
30723
30755
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
30756
|
+
args;
|
|
30724
30757
|
constructor(get, args) {
|
|
30725
30758
|
super(get);
|
|
30726
30759
|
this.args = args;
|
|
@@ -31772,6 +31805,7 @@ var DOMDndHelper = class {
|
|
|
31772
31805
|
}
|
|
31773
31806
|
};
|
|
31774
31807
|
var ContainerWrapper = class {
|
|
31808
|
+
el;
|
|
31775
31809
|
constructor(el) {
|
|
31776
31810
|
this.el = el;
|
|
31777
31811
|
}
|
|
@@ -31843,6 +31877,10 @@ var FocusStore = class {
|
|
|
31843
31877
|
* This plugin handles this internal state.
|
|
31844
31878
|
*/
|
|
31845
31879
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
31880
|
+
initialRanges;
|
|
31881
|
+
inputHasSingleRange;
|
|
31882
|
+
colors;
|
|
31883
|
+
disabledRanges;
|
|
31846
31884
|
mutators = [
|
|
31847
31885
|
"resetWithRanges",
|
|
31848
31886
|
"focusById",
|
|
@@ -40664,13 +40702,30 @@ var PivotRuntimeDefinition = class {
|
|
|
40664
40702
|
break;
|
|
40665
40703
|
}
|
|
40666
40704
|
return {
|
|
40705
|
+
/**
|
|
40706
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
40707
|
+
*/
|
|
40667
40708
|
id: measure.id,
|
|
40709
|
+
/**
|
|
40710
|
+
* Display name of the measure
|
|
40711
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
40712
|
+
*/
|
|
40668
40713
|
get displayName() {
|
|
40669
40714
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
40670
40715
|
},
|
|
40671
40716
|
userDefinedName: measure.userDefinedName,
|
|
40717
|
+
/**
|
|
40718
|
+
* Get the name of the field of the measure
|
|
40719
|
+
*/
|
|
40672
40720
|
fieldName,
|
|
40721
|
+
/**
|
|
40722
|
+
* Get the aggregator of the measure
|
|
40723
|
+
*/
|
|
40673
40724
|
aggregator,
|
|
40725
|
+
/**
|
|
40726
|
+
* Get the type of the measure field
|
|
40727
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
40728
|
+
*/
|
|
40674
40729
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
40675
40730
|
isValid,
|
|
40676
40731
|
isHidden: measure.isHidden,
|
|
@@ -40684,10 +40739,30 @@ var PivotRuntimeDefinition = class {
|
|
|
40684
40739
|
const type = field?.type ?? "integer";
|
|
40685
40740
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
40686
40741
|
return {
|
|
40742
|
+
/**
|
|
40743
|
+
* Get the display name of the dimension
|
|
40744
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
40745
|
+
*/
|
|
40687
40746
|
displayName: field?.string ?? dimension.fieldName,
|
|
40747
|
+
/**
|
|
40748
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
40749
|
+
* e.g. "stage_id", "create_date:month"
|
|
40750
|
+
*/
|
|
40688
40751
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
40752
|
+
/**
|
|
40753
|
+
* Get the name of the field of the dimension
|
|
40754
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
40755
|
+
*/
|
|
40689
40756
|
fieldName: dimension.fieldName,
|
|
40757
|
+
/**
|
|
40758
|
+
* Get the aggregate operator of the dimension
|
|
40759
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
40760
|
+
*/
|
|
40690
40761
|
granularity,
|
|
40762
|
+
/**
|
|
40763
|
+
* Get the type of the field of the dimension
|
|
40764
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
40765
|
+
*/
|
|
40691
40766
|
type: field?.isCustomField ? "custom" : type,
|
|
40692
40767
|
order: dimension.order,
|
|
40693
40768
|
isValid: !!field,
|
|
@@ -51858,6 +51933,8 @@ var MoreFormatsPanel = class extends Component {
|
|
|
51858
51933
|
//#endregion
|
|
51859
51934
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
51860
51935
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
51936
|
+
pivotId;
|
|
51937
|
+
initialMeasure;
|
|
51861
51938
|
mutators = [
|
|
51862
51939
|
"cancelMeasureDisplayEdition",
|
|
51863
51940
|
"updateMeasureDisplayType",
|
|
@@ -52057,7 +52134,7 @@ function getVisiblePivotCellPositions(getters, pivotId) {
|
|
|
52057
52134
|
col,
|
|
52058
52135
|
row
|
|
52059
52136
|
};
|
|
52060
|
-
if (
|
|
52137
|
+
if (getters.getPivotIdsFromPosition(position).includes(pivotId)) positions.push(position);
|
|
52061
52138
|
}
|
|
52062
52139
|
return positions;
|
|
52063
52140
|
}
|
|
@@ -52943,6 +53020,9 @@ function extractFormulaIdFromToken(tokenAtCursor) {
|
|
|
52943
53020
|
function getFirstPivotFunction(tokens) {
|
|
52944
53021
|
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS)[0];
|
|
52945
53022
|
}
|
|
53023
|
+
function getPivotFunctions(tokens) {
|
|
53024
|
+
return getFunctionsFromTokens(tokens, PIVOT_FUNCTIONS);
|
|
53025
|
+
}
|
|
52946
53026
|
/**
|
|
52947
53027
|
* Parse a spreadsheet formula and detect the number of PIVOT functions that are
|
|
52948
53028
|
* present in the given formula.
|
|
@@ -52954,6 +53034,7 @@ function getNumberOfPivotFunctions(tokens) {
|
|
|
52954
53034
|
//#endregion
|
|
52955
53035
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
52956
53036
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
53037
|
+
pivotId;
|
|
52957
53038
|
mutators = [
|
|
52958
53039
|
"reset",
|
|
52959
53040
|
"deferUpdates",
|
|
@@ -56485,6 +56566,11 @@ var CellPlugin = class extends CorePlugin {
|
|
|
56485
56566
|
}
|
|
56486
56567
|
};
|
|
56487
56568
|
var FormulaCellWithDependencies = class {
|
|
56569
|
+
id;
|
|
56570
|
+
format;
|
|
56571
|
+
style;
|
|
56572
|
+
sheetId;
|
|
56573
|
+
getRangeString;
|
|
56488
56574
|
isFormula = true;
|
|
56489
56575
|
compiledFormula;
|
|
56490
56576
|
constructor(id, compiledFormula, format, style, dependencies, sheetId, getRangeString) {
|
|
@@ -56519,6 +56605,10 @@ var FormulaCellWithDependencies = class {
|
|
|
56519
56605
|
}
|
|
56520
56606
|
};
|
|
56521
56607
|
var RangeReferenceToken = class {
|
|
56608
|
+
ranges;
|
|
56609
|
+
rangeIndex;
|
|
56610
|
+
sheetId;
|
|
56611
|
+
getRangeString;
|
|
56522
56612
|
type = "REFERENCE";
|
|
56523
56613
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
56524
56614
|
this.ranges = ranges;
|
|
@@ -60504,6 +60594,8 @@ function buildCompilationParameters(context, getters, computeCell) {
|
|
|
60504
60594
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
60505
60595
|
}
|
|
60506
60596
|
var CompilationParametersBuilder = class {
|
|
60597
|
+
getters;
|
|
60598
|
+
computeCell;
|
|
60507
60599
|
evalContext;
|
|
60508
60600
|
rangeCache = {};
|
|
60509
60601
|
constructor(context, getters, computeCell) {
|
|
@@ -61437,6 +61529,7 @@ const ERROR_CYCLE_CELL = Object.freeze(createEvaluatedCell({
|
|
|
61437
61529
|
}));
|
|
61438
61530
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
61439
61531
|
var Evaluator = class {
|
|
61532
|
+
context;
|
|
61440
61533
|
getters;
|
|
61441
61534
|
compilationParams;
|
|
61442
61535
|
evaluatedCells = new PositionMap();
|
|
@@ -63745,6 +63838,7 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63745
63838
|
"getFirstPivotFunction",
|
|
63746
63839
|
"getPivotCellSortDirection",
|
|
63747
63840
|
"getPivotIdFromPosition",
|
|
63841
|
+
"getPivotIdsFromPosition",
|
|
63748
63842
|
"getPivotCellFromPosition",
|
|
63749
63843
|
"generateNewCalculatedMeasureName",
|
|
63750
63844
|
"isPivotUnused",
|
|
@@ -63802,37 +63896,52 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63802
63896
|
}
|
|
63803
63897
|
}
|
|
63804
63898
|
/**
|
|
63805
|
-
* Get the id of the pivot at the given position. Returns undefined if there
|
|
63899
|
+
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
63806
63900
|
* is no pivot at this position
|
|
63807
63901
|
*/
|
|
63808
63902
|
getPivotIdFromPosition(position) {
|
|
63903
|
+
return this.getPivotIdsFromPosition(position)[0];
|
|
63904
|
+
}
|
|
63905
|
+
/**
|
|
63906
|
+
* Get all of the ids of the pivot present in the formula at the given position.
|
|
63907
|
+
*/
|
|
63908
|
+
getPivotIdsFromPosition(position) {
|
|
63809
63909
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
63810
|
-
if (cell && cell.isFormula)
|
|
63811
|
-
|
|
63812
|
-
|
|
63813
|
-
|
|
63814
|
-
|
|
63815
|
-
|
|
63816
|
-
|
|
63910
|
+
if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
|
|
63911
|
+
return [];
|
|
63912
|
+
}
|
|
63913
|
+
getPivotIdsFromFormula(sheetId, formula) {
|
|
63914
|
+
return this.getPivotFunctions(sheetId, formula.tokens).map((pivotFunction) => {
|
|
63915
|
+
const pivotId = pivotFunction.args[0]?.toString();
|
|
63916
|
+
return pivotId && this.getters.getPivotId(pivotId);
|
|
63917
|
+
}).filter(isDefined);
|
|
63817
63918
|
}
|
|
63818
63919
|
isSpillPivotFormula(position) {
|
|
63819
63920
|
const cell = this.getters.getCorrespondingFormulaCell(position);
|
|
63820
63921
|
if (cell && cell.isFormula) return this.getFirstPivotFunction(position.sheetId, cell.compiledFormula.tokens)?.functionName === "PIVOT";
|
|
63821
63922
|
return false;
|
|
63822
63923
|
}
|
|
63823
|
-
|
|
63824
|
-
const
|
|
63825
|
-
if (!
|
|
63826
|
-
const
|
|
63827
|
-
|
|
63828
|
-
functionName,
|
|
63829
|
-
|
|
63924
|
+
getPivotFunctions(sheetId, tokens) {
|
|
63925
|
+
const pivotFunctions = getPivotFunctions(tokens);
|
|
63926
|
+
if (!pivotFunctions.length) return [];
|
|
63927
|
+
const evaluatedPivotFunctions = [];
|
|
63928
|
+
for (const pivotFunction of pivotFunctions) {
|
|
63929
|
+
const { functionName, args } = pivotFunction;
|
|
63930
|
+
const evaluatedArgs = args.map((argAst) => {
|
|
63830
63931
|
if (argAst.type === "EMPTY") return;
|
|
63831
63932
|
else if (argAst.type === "STRING" || argAst.type === "BOOLEAN" || argAst.type === "NUMBER") return argAst.value;
|
|
63832
63933
|
const argsString = astToFormula(argAst);
|
|
63833
63934
|
return this.getters.evaluateFormula(sheetId, argsString);
|
|
63834
|
-
})
|
|
63835
|
-
|
|
63935
|
+
});
|
|
63936
|
+
evaluatedPivotFunctions.push({
|
|
63937
|
+
functionName,
|
|
63938
|
+
args: evaluatedArgs
|
|
63939
|
+
});
|
|
63940
|
+
}
|
|
63941
|
+
return evaluatedPivotFunctions;
|
|
63942
|
+
}
|
|
63943
|
+
getFirstPivotFunction(sheetId, tokens) {
|
|
63944
|
+
return this.getPivotFunctions(sheetId, tokens)[0];
|
|
63836
63945
|
}
|
|
63837
63946
|
/**
|
|
63838
63947
|
* Returns the domain args of a pivot formula from a position.
|
|
@@ -63946,8 +64055,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63946
64055
|
const unusedPivots = new Set(this.getters.getPivotIds());
|
|
63947
64056
|
for (const sheetId of this.getters.getSheetIds()) for (const cellId in this.getters.getCells(sheetId)) {
|
|
63948
64057
|
const position = this.getters.getCellPosition(cellId);
|
|
63949
|
-
const
|
|
63950
|
-
|
|
64058
|
+
const pivotIds = this.getPivotIdsFromPosition(position);
|
|
64059
|
+
for (const pivotId of pivotIds) {
|
|
63951
64060
|
unusedPivots.delete(pivotId);
|
|
63952
64061
|
if (!unusedPivots.size) {
|
|
63953
64062
|
this.unusedPivots = [];
|
|
@@ -63955,6 +64064,21 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63955
64064
|
}
|
|
63956
64065
|
}
|
|
63957
64066
|
}
|
|
64067
|
+
for (const pivotId of this.getters.getPivotIds()) {
|
|
64068
|
+
const pivot = this.getters.getPivot(pivotId);
|
|
64069
|
+
for (const measure of pivot.definition.measures) if (measure.computedBy) {
|
|
64070
|
+
const { sheetId } = measure.computedBy;
|
|
64071
|
+
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
64072
|
+
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
64073
|
+
for (const relatedPivotId of relatedPivotIds) {
|
|
64074
|
+
unusedPivots.delete(relatedPivotId);
|
|
64075
|
+
if (!unusedPivots.size) {
|
|
64076
|
+
this.unusedPivots = [];
|
|
64077
|
+
return [];
|
|
64078
|
+
}
|
|
64079
|
+
}
|
|
64080
|
+
}
|
|
64081
|
+
}
|
|
63958
64082
|
this.unusedPivots = [...unusedPivots];
|
|
63959
64083
|
return this.unusedPivots;
|
|
63960
64084
|
}
|
|
@@ -65557,6 +65681,8 @@ function transformPositionWithMerge(toTransform, executed) {
|
|
|
65557
65681
|
//#endregion
|
|
65558
65682
|
//#region src/collaborative/revisions.ts
|
|
65559
65683
|
var Revision = class {
|
|
65684
|
+
rootCommand;
|
|
65685
|
+
timestamp;
|
|
65560
65686
|
id;
|
|
65561
65687
|
clientId;
|
|
65562
65688
|
_commands = [];
|
|
@@ -65593,6 +65719,9 @@ var Revision = class {
|
|
|
65593
65719
|
//#region src/collaborative/session.ts
|
|
65594
65720
|
var ClientDisconnectedError = class extends Error {};
|
|
65595
65721
|
var Session = class extends EventBus {
|
|
65722
|
+
revisions;
|
|
65723
|
+
transportService;
|
|
65724
|
+
serverRevisionId;
|
|
65596
65725
|
/**
|
|
65597
65726
|
* Positions of the others client.
|
|
65598
65727
|
*/
|
|
@@ -69309,6 +69438,9 @@ var GridSelectionPlugin = class extends UIPlugin {
|
|
|
69309
69438
|
//#endregion
|
|
69310
69439
|
//#region src/helpers/internal_viewport.ts
|
|
69311
69440
|
var InternalViewport = class {
|
|
69441
|
+
getters;
|
|
69442
|
+
sheetId;
|
|
69443
|
+
boundaries;
|
|
69312
69444
|
top;
|
|
69313
69445
|
bottom;
|
|
69314
69446
|
left;
|
|
@@ -74444,6 +74576,7 @@ function instantiateClipboard() {
|
|
|
74444
74576
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
74445
74577
|
}
|
|
74446
74578
|
var WebClipboardWrapper = class {
|
|
74579
|
+
clipboard;
|
|
74447
74580
|
constructor(clipboard) {
|
|
74448
74581
|
this.clipboard = clipboard;
|
|
74449
74582
|
}
|
|
@@ -74930,6 +75063,7 @@ var Spreadsheet = class extends Component {
|
|
|
74930
75063
|
//#endregion
|
|
74931
75064
|
//#region src/collaborative/readonly_transport_filter.ts
|
|
74932
75065
|
var ReadonlyTransportFilter = class {
|
|
75066
|
+
transportService;
|
|
74933
75067
|
constructor(transportService) {
|
|
74934
75068
|
this.transportService = transportService;
|
|
74935
75069
|
}
|
|
@@ -74961,6 +75095,8 @@ function inverseCommand(cmd) {
|
|
|
74961
75095
|
* @param operations initial operations
|
|
74962
75096
|
*/
|
|
74963
75097
|
var Branch = class Branch {
|
|
75098
|
+
buildTransformation;
|
|
75099
|
+
operations;
|
|
74964
75100
|
constructor(buildTransformation, operations = []) {
|
|
74965
75101
|
this.buildTransformation = buildTransformation;
|
|
74966
75102
|
this.operations = operations;
|
|
@@ -75077,6 +75213,8 @@ var Branch = class Branch {
|
|
|
75077
75213
|
* to revert it).
|
|
75078
75214
|
*/
|
|
75079
75215
|
var Operation = class {
|
|
75216
|
+
id;
|
|
75217
|
+
data;
|
|
75080
75218
|
constructor(id, data) {
|
|
75081
75219
|
this.id = id;
|
|
75082
75220
|
this.data = data;
|
|
@@ -75086,6 +75224,8 @@ var Operation = class {
|
|
|
75086
75224
|
}
|
|
75087
75225
|
};
|
|
75088
75226
|
var LazyOperation = class LazyOperation {
|
|
75227
|
+
id;
|
|
75228
|
+
lazyData;
|
|
75089
75229
|
constructor(id, lazyData) {
|
|
75090
75230
|
this.id = id;
|
|
75091
75231
|
this.lazyData = lazyData;
|
|
@@ -75111,6 +75251,7 @@ var LazyOperation = class LazyOperation {
|
|
|
75111
75251
|
* ```
|
|
75112
75252
|
*/
|
|
75113
75253
|
var OperationSequence = class OperationSequence {
|
|
75254
|
+
operations;
|
|
75114
75255
|
constructor(operations) {
|
|
75115
75256
|
this.operations = operations;
|
|
75116
75257
|
}
|
|
@@ -75186,6 +75327,7 @@ var OperationSequence = class OperationSequence {
|
|
|
75186
75327
|
*
|
|
75187
75328
|
*/
|
|
75188
75329
|
var Tree = class {
|
|
75330
|
+
buildTransformation;
|
|
75189
75331
|
branches;
|
|
75190
75332
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
75191
75333
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -75765,6 +75907,7 @@ var EventStream = class {
|
|
|
75765
75907
|
* with the new selected anchor
|
|
75766
75908
|
*/
|
|
75767
75909
|
var SelectionStreamProcessorImpl = class {
|
|
75910
|
+
getters;
|
|
75768
75911
|
stream;
|
|
75769
75912
|
/**
|
|
75770
75913
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -79180,6 +79323,6 @@ const chartHelpers = {
|
|
|
79180
79323
|
//#endregion
|
|
79181
79324
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, chartHelpers, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
79182
79325
|
|
|
79183
|
-
__info__.version = "19.0.
|
|
79184
|
-
__info__.date = "2026-05-
|
|
79185
|
-
__info__.hash = "
|
|
79326
|
+
__info__.version = "19.0.36";
|
|
79327
|
+
__info__.date = "2026-05-27T05:57:35.932Z";
|
|
79328
|
+
__info__.hash = "3f73c94";
|