@odoo/o-spreadsheet 18.4.38 → 18.4.40
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 +106 -6
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +106 -6
- package/dist/o_spreadsheet.iife.js +106 -6
- package/dist/o_spreadsheet.iife.min.js +18 -18
- package/dist/o_spreadsheet.xml +4 -4
- package/package.json +21 -21
|
@@ -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.4.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.4.40
|
|
6
|
+
* @date 2026-05-15T07:04:46.418Z
|
|
7
|
+
* @hash bb1e6d6
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -1383,6 +1383,7 @@ function getAlternatingColorsPalette(quantity) {
|
|
|
1383
1383
|
else return ALTERNATING_COLORS_XL;
|
|
1384
1384
|
}
|
|
1385
1385
|
var ColorGenerator = class {
|
|
1386
|
+
preferredColors;
|
|
1386
1387
|
currentColorIndex = 0;
|
|
1387
1388
|
palette;
|
|
1388
1389
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -1590,6 +1591,7 @@ const _t = function(s, ...values) {
|
|
|
1590
1591
|
return sprintf(_translate(s), ...values);
|
|
1591
1592
|
};
|
|
1592
1593
|
var LazyTranslatedString = class extends String {
|
|
1594
|
+
values;
|
|
1593
1595
|
constructor(str, values) {
|
|
1594
1596
|
super(str);
|
|
1595
1597
|
this.values = values;
|
|
@@ -2725,6 +2727,8 @@ const CellErrorType = {
|
|
|
2725
2727
|
};
|
|
2726
2728
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
2727
2729
|
var EvaluationError = class {
|
|
2730
|
+
message;
|
|
2731
|
+
value;
|
|
2728
2732
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
2729
2733
|
this.message = message;
|
|
2730
2734
|
this.value = value;
|
|
@@ -2757,6 +2761,7 @@ var UnknownFunctionError = class extends EvaluationError {
|
|
|
2757
2761
|
}
|
|
2758
2762
|
};
|
|
2759
2763
|
var SplillBlockedError = class extends EvaluationError {
|
|
2764
|
+
errorOriginPosition;
|
|
2760
2765
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
2761
2766
|
super(message, CellErrorType.SpilledBlocked);
|
|
2762
2767
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -6299,6 +6304,8 @@ const selectPastedZone = (selection, sourceZones, pastedZones) => {
|
|
|
6299
6304
|
//#endregion
|
|
6300
6305
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
6301
6306
|
var ClipboardHandler = class {
|
|
6307
|
+
getters;
|
|
6308
|
+
dispatch;
|
|
6302
6309
|
constructor(getters, dispatch) {
|
|
6303
6310
|
this.getters = getters;
|
|
6304
6311
|
this.dispatch = dispatch;
|
|
@@ -8572,6 +8579,7 @@ var DependencyContainer = class extends EventBus {
|
|
|
8572
8579
|
}
|
|
8573
8580
|
};
|
|
8574
8581
|
var StoreFactory = class {
|
|
8582
|
+
get;
|
|
8575
8583
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
8576
8584
|
constructor(get) {
|
|
8577
8585
|
this.get = get;
|
|
@@ -8616,6 +8624,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8616
8624
|
return MetaStore;
|
|
8617
8625
|
}
|
|
8618
8626
|
var DisposableStore = class {
|
|
8627
|
+
get;
|
|
8619
8628
|
disposeCallbacks = [];
|
|
8620
8629
|
constructor(get) {
|
|
8621
8630
|
this.get = get;
|
|
@@ -17231,6 +17240,7 @@ function hasStringMessage(obj) {
|
|
|
17231
17240
|
//#endregion
|
|
17232
17241
|
//#region src/formulas/code_builder.ts
|
|
17233
17242
|
var FunctionCodeBuilder = class {
|
|
17243
|
+
scope;
|
|
17234
17244
|
code = "";
|
|
17235
17245
|
constructor(scope = new Scope()) {
|
|
17236
17246
|
this.scope = scope;
|
|
@@ -17246,6 +17256,8 @@ var FunctionCodeBuilder = class {
|
|
|
17246
17256
|
}
|
|
17247
17257
|
};
|
|
17248
17258
|
var FunctionCodeImpl = class {
|
|
17259
|
+
scope;
|
|
17260
|
+
returnExpression;
|
|
17249
17261
|
code;
|
|
17250
17262
|
constructor(scope, code, returnExpression) {
|
|
17251
17263
|
this.scope = scope;
|
|
@@ -19197,6 +19209,7 @@ function getScorecardConfiguration({ width, height }, runtime) {
|
|
|
19197
19209
|
}, runtime).computeDesign();
|
|
19198
19210
|
}
|
|
19199
19211
|
var ScorecardChartConfigBuilder = class {
|
|
19212
|
+
runtime;
|
|
19200
19213
|
context;
|
|
19201
19214
|
width;
|
|
19202
19215
|
height;
|
|
@@ -22545,6 +22558,10 @@ var GaugeChartComponent = class extends _odoo_owl.Component {
|
|
|
22545
22558
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
22546
22559
|
*/
|
|
22547
22560
|
var Animation = class {
|
|
22561
|
+
startValue;
|
|
22562
|
+
endValue;
|
|
22563
|
+
duration;
|
|
22564
|
+
callback;
|
|
22548
22565
|
startTime = void 0;
|
|
22549
22566
|
animationFrameId = null;
|
|
22550
22567
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -24904,6 +24921,7 @@ function getMaxFigureSize(getters, figureSize) {
|
|
|
24904
24921
|
* Represent a raw XML string
|
|
24905
24922
|
*/
|
|
24906
24923
|
var XMLString = class {
|
|
24924
|
+
xmlString;
|
|
24907
24925
|
/**
|
|
24908
24926
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
24909
24927
|
*/
|
|
@@ -25625,6 +25643,11 @@ var Popover = class extends _odoo_owl.Component {
|
|
|
25625
25643
|
}
|
|
25626
25644
|
};
|
|
25627
25645
|
var PopoverPositionContext = class {
|
|
25646
|
+
anchorRect;
|
|
25647
|
+
containerRect;
|
|
25648
|
+
propsMaxSize;
|
|
25649
|
+
spreadsheetOffset;
|
|
25650
|
+
lastPosition;
|
|
25628
25651
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
25629
25652
|
this.anchorRect = anchorRect;
|
|
25630
25653
|
this.containerRect = containerRect;
|
|
@@ -28840,6 +28863,7 @@ var Composer = class extends _odoo_owl.Component {
|
|
|
28840
28863
|
//#endregion
|
|
28841
28864
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
28842
28865
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
28866
|
+
args;
|
|
28843
28867
|
constructor(get, args) {
|
|
28844
28868
|
super(get);
|
|
28845
28869
|
this.args = args;
|
|
@@ -29895,6 +29919,7 @@ var DOMDndHelper = class {
|
|
|
29895
29919
|
}
|
|
29896
29920
|
};
|
|
29897
29921
|
var ContainerWrapper = class {
|
|
29922
|
+
el;
|
|
29898
29923
|
constructor(el) {
|
|
29899
29924
|
this.el = el;
|
|
29900
29925
|
}
|
|
@@ -29966,6 +29991,10 @@ var FocusStore = class {
|
|
|
29966
29991
|
* This plugin handles this internal state.
|
|
29967
29992
|
*/
|
|
29968
29993
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
29994
|
+
initialRanges;
|
|
29995
|
+
inputHasSingleRange;
|
|
29996
|
+
colors;
|
|
29997
|
+
disabledRanges;
|
|
29969
29998
|
mutators = [
|
|
29970
29999
|
"resetWithRanges",
|
|
29971
30000
|
"focusById",
|
|
@@ -47501,6 +47530,8 @@ var MoreFormatsPanel = class extends _odoo_owl.Component {
|
|
|
47501
47530
|
//#endregion
|
|
47502
47531
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
47503
47532
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
47533
|
+
pivotId;
|
|
47534
|
+
initialMeasure;
|
|
47504
47535
|
mutators = [
|
|
47505
47536
|
"cancelMeasureDisplayEdition",
|
|
47506
47537
|
"updateMeasureDisplayType",
|
|
@@ -48674,13 +48705,30 @@ function createMeasure(fields, measure) {
|
|
|
48674
48705
|
} : fields[fieldName];
|
|
48675
48706
|
const aggregator = measure.aggregator;
|
|
48676
48707
|
return {
|
|
48708
|
+
/**
|
|
48709
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
48710
|
+
*/
|
|
48677
48711
|
id: measure.id,
|
|
48712
|
+
/**
|
|
48713
|
+
* Display name of the measure
|
|
48714
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
48715
|
+
*/
|
|
48678
48716
|
get displayName() {
|
|
48679
48717
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
48680
48718
|
},
|
|
48681
48719
|
userDefinedName: measure.userDefinedName,
|
|
48720
|
+
/**
|
|
48721
|
+
* Get the name of the field of the measure
|
|
48722
|
+
*/
|
|
48682
48723
|
fieldName,
|
|
48724
|
+
/**
|
|
48725
|
+
* Get the aggregator of the measure
|
|
48726
|
+
*/
|
|
48683
48727
|
aggregator,
|
|
48728
|
+
/**
|
|
48729
|
+
* Get the type of the measure field
|
|
48730
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
48731
|
+
*/
|
|
48684
48732
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
48685
48733
|
isValid: !!(field || measure.computedBy),
|
|
48686
48734
|
isHidden: measure.isHidden,
|
|
@@ -48694,10 +48742,30 @@ function createPivotDimension(fields, dimension) {
|
|
|
48694
48742
|
const type = field?.type ?? "integer";
|
|
48695
48743
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
48696
48744
|
return {
|
|
48745
|
+
/**
|
|
48746
|
+
* Get the display name of the dimension
|
|
48747
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
48748
|
+
*/
|
|
48697
48749
|
displayName: field?.string ?? dimension.fieldName,
|
|
48750
|
+
/**
|
|
48751
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
48752
|
+
* e.g. "stage_id", "create_date:month"
|
|
48753
|
+
*/
|
|
48698
48754
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
48755
|
+
/**
|
|
48756
|
+
* Get the name of the field of the dimension
|
|
48757
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
48758
|
+
*/
|
|
48699
48759
|
fieldName: dimension.fieldName,
|
|
48760
|
+
/**
|
|
48761
|
+
* Get the aggregate operator of the dimension
|
|
48762
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
48763
|
+
*/
|
|
48700
48764
|
granularity,
|
|
48765
|
+
/**
|
|
48766
|
+
* Get the type of the field of the dimension
|
|
48767
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
48768
|
+
*/
|
|
48701
48769
|
type,
|
|
48702
48770
|
order: dimension.order,
|
|
48703
48771
|
isValid: !!field
|
|
@@ -49774,6 +49842,7 @@ function adaptPivotRange(range, applyChange) {
|
|
|
49774
49842
|
//#endregion
|
|
49775
49843
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
49776
49844
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
49845
|
+
pivotId;
|
|
49777
49846
|
mutators = [
|
|
49778
49847
|
"reset",
|
|
49779
49848
|
"deferUpdates",
|
|
@@ -53330,6 +53399,11 @@ var CellPlugin = class extends CorePlugin {
|
|
|
53330
53399
|
}
|
|
53331
53400
|
};
|
|
53332
53401
|
var FormulaCellWithDependencies = class {
|
|
53402
|
+
id;
|
|
53403
|
+
format;
|
|
53404
|
+
style;
|
|
53405
|
+
sheetId;
|
|
53406
|
+
getRangeString;
|
|
53333
53407
|
isFormula = true;
|
|
53334
53408
|
compiledFormula;
|
|
53335
53409
|
constructor(id, compiledFormula, format, style, dependencies, sheetId, getRangeString) {
|
|
@@ -53364,6 +53438,10 @@ var FormulaCellWithDependencies = class {
|
|
|
53364
53438
|
}
|
|
53365
53439
|
};
|
|
53366
53440
|
var RangeReferenceToken = class {
|
|
53441
|
+
ranges;
|
|
53442
|
+
rangeIndex;
|
|
53443
|
+
sheetId;
|
|
53444
|
+
getRangeString;
|
|
53367
53445
|
type = "REFERENCE";
|
|
53368
53446
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
53369
53447
|
this.ranges = ranges;
|
|
@@ -57149,6 +57227,8 @@ function buildCompilationParameters(context, getters, computeCell) {
|
|
|
57149
57227
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
57150
57228
|
}
|
|
57151
57229
|
var CompilationParametersBuilder = class {
|
|
57230
|
+
getters;
|
|
57231
|
+
computeCell;
|
|
57152
57232
|
evalContext;
|
|
57153
57233
|
rangeCache = {};
|
|
57154
57234
|
constructor(context, getters, computeCell) {
|
|
@@ -57786,6 +57866,7 @@ var ZoneRBush = class extends import_rbush.default {
|
|
|
57786
57866
|
* It uses an R-Tree data structure to efficiently find dependent cells.
|
|
57787
57867
|
*/
|
|
57788
57868
|
var FormulaDependencyGraph = class {
|
|
57869
|
+
createEmptyPositionSet;
|
|
57789
57870
|
dependencies = new PositionMap();
|
|
57790
57871
|
rTree;
|
|
57791
57872
|
constructor(createEmptyPositionSet, data = []) {
|
|
@@ -58087,6 +58168,7 @@ const MAX_ITERATION = 30;
|
|
|
58087
58168
|
const ERROR_CYCLE_CELL = Object.freeze(createEvaluatedCell(new CircularDependencyError()));
|
|
58088
58169
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
58089
58170
|
var Evaluator = class {
|
|
58171
|
+
context;
|
|
58090
58172
|
getters;
|
|
58091
58173
|
compilationParams;
|
|
58092
58174
|
evaluatedCells = new PositionMap();
|
|
@@ -62142,6 +62224,8 @@ function transformPositionWithMerge(toTransform, executed) {
|
|
|
62142
62224
|
//#endregion
|
|
62143
62225
|
//#region src/collaborative/revisions.ts
|
|
62144
62226
|
var Revision = class {
|
|
62227
|
+
rootCommand;
|
|
62228
|
+
timestamp;
|
|
62145
62229
|
id;
|
|
62146
62230
|
clientId;
|
|
62147
62231
|
_commands = [];
|
|
@@ -62178,6 +62262,9 @@ var Revision = class {
|
|
|
62178
62262
|
//#region src/collaborative/session.ts
|
|
62179
62263
|
var ClientDisconnectedError = class extends Error {};
|
|
62180
62264
|
var Session = class extends EventBus {
|
|
62265
|
+
revisions;
|
|
62266
|
+
transportService;
|
|
62267
|
+
serverRevisionId;
|
|
62181
62268
|
/**
|
|
62182
62269
|
* Positions of the others client.
|
|
62183
62270
|
*/
|
|
@@ -65864,6 +65951,9 @@ var GridSelectionPlugin = class extends UIPlugin {
|
|
|
65864
65951
|
//#endregion
|
|
65865
65952
|
//#region src/helpers/internal_viewport.ts
|
|
65866
65953
|
var InternalViewport = class {
|
|
65954
|
+
getters;
|
|
65955
|
+
sheetId;
|
|
65956
|
+
boundaries;
|
|
65867
65957
|
top;
|
|
65868
65958
|
bottom;
|
|
65869
65959
|
left;
|
|
@@ -70793,6 +70883,7 @@ function instantiateClipboard() {
|
|
|
70793
70883
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
70794
70884
|
}
|
|
70795
70885
|
var WebClipboardWrapper = class {
|
|
70886
|
+
clipboard;
|
|
70796
70887
|
constructor(clipboard) {
|
|
70797
70888
|
this.clipboard = clipboard;
|
|
70798
70889
|
}
|
|
@@ -71293,6 +71384,8 @@ function inverseCommand(cmd) {
|
|
|
71293
71384
|
* @param operations initial operations
|
|
71294
71385
|
*/
|
|
71295
71386
|
var Branch = class Branch {
|
|
71387
|
+
buildTransformation;
|
|
71388
|
+
operations;
|
|
71296
71389
|
constructor(buildTransformation, operations = []) {
|
|
71297
71390
|
this.buildTransformation = buildTransformation;
|
|
71298
71391
|
this.operations = operations;
|
|
@@ -71409,6 +71502,8 @@ var Branch = class Branch {
|
|
|
71409
71502
|
* to revert it).
|
|
71410
71503
|
*/
|
|
71411
71504
|
var Operation = class {
|
|
71505
|
+
id;
|
|
71506
|
+
data;
|
|
71412
71507
|
constructor(id, data) {
|
|
71413
71508
|
this.id = id;
|
|
71414
71509
|
this.data = data;
|
|
@@ -71418,6 +71513,8 @@ var Operation = class {
|
|
|
71418
71513
|
}
|
|
71419
71514
|
};
|
|
71420
71515
|
var LazyOperation = class LazyOperation {
|
|
71516
|
+
id;
|
|
71517
|
+
lazyData;
|
|
71421
71518
|
constructor(id, lazyData) {
|
|
71422
71519
|
this.id = id;
|
|
71423
71520
|
this.lazyData = lazyData;
|
|
@@ -71443,6 +71540,7 @@ var LazyOperation = class LazyOperation {
|
|
|
71443
71540
|
* ```
|
|
71444
71541
|
*/
|
|
71445
71542
|
var OperationSequence = class OperationSequence {
|
|
71543
|
+
operations;
|
|
71446
71544
|
constructor(operations) {
|
|
71447
71545
|
this.operations = operations;
|
|
71448
71546
|
}
|
|
@@ -71518,6 +71616,7 @@ var OperationSequence = class OperationSequence {
|
|
|
71518
71616
|
*
|
|
71519
71617
|
*/
|
|
71520
71618
|
var Tree = class {
|
|
71619
|
+
buildTransformation;
|
|
71521
71620
|
branches;
|
|
71522
71621
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
71523
71622
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -72097,6 +72196,7 @@ var EventStream = class {
|
|
|
72097
72196
|
* with the new selected anchor
|
|
72098
72197
|
*/
|
|
72099
72198
|
var SelectionStreamProcessorImpl = class {
|
|
72199
|
+
getters;
|
|
72100
72200
|
stream;
|
|
72101
72201
|
/**
|
|
72102
72202
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -75453,6 +75553,6 @@ exports.stores = stores;
|
|
|
75453
75553
|
exports.tokenColors = tokenColors;
|
|
75454
75554
|
exports.tokenize = tokenize;
|
|
75455
75555
|
|
|
75456
|
-
__info__.version = "18.4.
|
|
75457
|
-
__info__.date = "2026-05-
|
|
75458
|
-
__info__.hash = "
|
|
75556
|
+
__info__.version = "18.4.40";
|
|
75557
|
+
__info__.date = "2026-05-15T07:04:46.418Z";
|
|
75558
|
+
__info__.hash = "bb1e6d6";
|
package/dist/o_spreadsheet.css
CHANGED
|
@@ -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.4.
|
|
6
|
-
* @date 2026-05-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.4.40
|
|
6
|
+
* @date 2026-05-15T07:04:47.982Z
|
|
7
|
+
* @hash bb1e6d6
|
|
8
8
|
*/
|
|
9
9
|
/* Originates from src/components/top_bar/top_bar.scss */
|
|
10
10
|
@media (max-width: 1200px) {
|