@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
|
(function(exports, _odoo_owl) {
|
|
@@ -1384,6 +1384,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
1384
1384
|
else return ALTERNATING_COLORS_XL;
|
|
1385
1385
|
}
|
|
1386
1386
|
var ColorGenerator = class {
|
|
1387
|
+
preferredColors;
|
|
1387
1388
|
currentColorIndex = 0;
|
|
1388
1389
|
palette;
|
|
1389
1390
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -1591,6 +1592,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
1591
1592
|
return sprintf(_translate(s), ...values);
|
|
1592
1593
|
};
|
|
1593
1594
|
var LazyTranslatedString = class extends String {
|
|
1595
|
+
values;
|
|
1594
1596
|
constructor(str, values) {
|
|
1595
1597
|
super(str);
|
|
1596
1598
|
this.values = values;
|
|
@@ -2726,6 +2728,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2726
2728
|
};
|
|
2727
2729
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
2728
2730
|
var EvaluationError = class {
|
|
2731
|
+
message;
|
|
2732
|
+
value;
|
|
2729
2733
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
2730
2734
|
this.message = message;
|
|
2731
2735
|
this.value = value;
|
|
@@ -2758,6 +2762,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2758
2762
|
}
|
|
2759
2763
|
};
|
|
2760
2764
|
var SplillBlockedError = class extends EvaluationError {
|
|
2765
|
+
errorOriginPosition;
|
|
2761
2766
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
2762
2767
|
super(message, CellErrorType.SpilledBlocked);
|
|
2763
2768
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -6300,6 +6305,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
6300
6305
|
//#endregion
|
|
6301
6306
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
6302
6307
|
var ClipboardHandler = class {
|
|
6308
|
+
getters;
|
|
6309
|
+
dispatch;
|
|
6303
6310
|
constructor(getters, dispatch) {
|
|
6304
6311
|
this.getters = getters;
|
|
6305
6312
|
this.dispatch = dispatch;
|
|
@@ -8573,6 +8580,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
8573
8580
|
}
|
|
8574
8581
|
};
|
|
8575
8582
|
var StoreFactory = class {
|
|
8583
|
+
get;
|
|
8576
8584
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
8577
8585
|
constructor(get) {
|
|
8578
8586
|
this.get = get;
|
|
@@ -8617,6 +8625,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8617
8625
|
return MetaStore;
|
|
8618
8626
|
}
|
|
8619
8627
|
var DisposableStore = class {
|
|
8628
|
+
get;
|
|
8620
8629
|
disposeCallbacks = [];
|
|
8621
8630
|
constructor(get) {
|
|
8622
8631
|
this.get = get;
|
|
@@ -17232,6 +17241,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17232
17241
|
//#endregion
|
|
17233
17242
|
//#region src/formulas/code_builder.ts
|
|
17234
17243
|
var FunctionCodeBuilder = class {
|
|
17244
|
+
scope;
|
|
17235
17245
|
code = "";
|
|
17236
17246
|
constructor(scope = new Scope()) {
|
|
17237
17247
|
this.scope = scope;
|
|
@@ -17247,6 +17257,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17247
17257
|
}
|
|
17248
17258
|
};
|
|
17249
17259
|
var FunctionCodeImpl = class {
|
|
17260
|
+
scope;
|
|
17261
|
+
returnExpression;
|
|
17250
17262
|
code;
|
|
17251
17263
|
constructor(scope, code, returnExpression) {
|
|
17252
17264
|
this.scope = scope;
|
|
@@ -19198,6 +19210,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
19198
19210
|
}, runtime).computeDesign();
|
|
19199
19211
|
}
|
|
19200
19212
|
var ScorecardChartConfigBuilder = class {
|
|
19213
|
+
runtime;
|
|
19201
19214
|
context;
|
|
19202
19215
|
width;
|
|
19203
19216
|
height;
|
|
@@ -22546,6 +22559,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
22546
22559
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
22547
22560
|
*/
|
|
22548
22561
|
var Animation = class {
|
|
22562
|
+
startValue;
|
|
22563
|
+
endValue;
|
|
22564
|
+
duration;
|
|
22565
|
+
callback;
|
|
22549
22566
|
startTime = void 0;
|
|
22550
22567
|
animationFrameId = null;
|
|
22551
22568
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -24905,6 +24922,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24905
24922
|
* Represent a raw XML string
|
|
24906
24923
|
*/
|
|
24907
24924
|
var XMLString = class {
|
|
24925
|
+
xmlString;
|
|
24908
24926
|
/**
|
|
24909
24927
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
24910
24928
|
*/
|
|
@@ -25626,6 +25644,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
25626
25644
|
}
|
|
25627
25645
|
};
|
|
25628
25646
|
var PopoverPositionContext = class {
|
|
25647
|
+
anchorRect;
|
|
25648
|
+
containerRect;
|
|
25649
|
+
propsMaxSize;
|
|
25650
|
+
spreadsheetOffset;
|
|
25651
|
+
lastPosition;
|
|
25629
25652
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
25630
25653
|
this.anchorRect = anchorRect;
|
|
25631
25654
|
this.containerRect = containerRect;
|
|
@@ -28841,6 +28864,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
28841
28864
|
//#endregion
|
|
28842
28865
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
28843
28866
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
28867
|
+
args;
|
|
28844
28868
|
constructor(get, args) {
|
|
28845
28869
|
super(get);
|
|
28846
28870
|
this.args = args;
|
|
@@ -29896,6 +29920,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29896
29920
|
}
|
|
29897
29921
|
};
|
|
29898
29922
|
var ContainerWrapper = class {
|
|
29923
|
+
el;
|
|
29899
29924
|
constructor(el) {
|
|
29900
29925
|
this.el = el;
|
|
29901
29926
|
}
|
|
@@ -29967,6 +29992,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29967
29992
|
* This plugin handles this internal state.
|
|
29968
29993
|
*/
|
|
29969
29994
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
29995
|
+
initialRanges;
|
|
29996
|
+
inputHasSingleRange;
|
|
29997
|
+
colors;
|
|
29998
|
+
disabledRanges;
|
|
29970
29999
|
mutators = [
|
|
29971
30000
|
"resetWithRanges",
|
|
29972
30001
|
"focusById",
|
|
@@ -47502,6 +47531,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
47502
47531
|
//#endregion
|
|
47503
47532
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
47504
47533
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
47534
|
+
pivotId;
|
|
47535
|
+
initialMeasure;
|
|
47505
47536
|
mutators = [
|
|
47506
47537
|
"cancelMeasureDisplayEdition",
|
|
47507
47538
|
"updateMeasureDisplayType",
|
|
@@ -48675,13 +48706,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
48675
48706
|
} : fields[fieldName];
|
|
48676
48707
|
const aggregator = measure.aggregator;
|
|
48677
48708
|
return {
|
|
48709
|
+
/**
|
|
48710
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
48711
|
+
*/
|
|
48678
48712
|
id: measure.id,
|
|
48713
|
+
/**
|
|
48714
|
+
* Display name of the measure
|
|
48715
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
48716
|
+
*/
|
|
48679
48717
|
get displayName() {
|
|
48680
48718
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
48681
48719
|
},
|
|
48682
48720
|
userDefinedName: measure.userDefinedName,
|
|
48721
|
+
/**
|
|
48722
|
+
* Get the name of the field of the measure
|
|
48723
|
+
*/
|
|
48683
48724
|
fieldName,
|
|
48725
|
+
/**
|
|
48726
|
+
* Get the aggregator of the measure
|
|
48727
|
+
*/
|
|
48684
48728
|
aggregator,
|
|
48729
|
+
/**
|
|
48730
|
+
* Get the type of the measure field
|
|
48731
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
48732
|
+
*/
|
|
48685
48733
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
48686
48734
|
isValid: !!(field || measure.computedBy),
|
|
48687
48735
|
isHidden: measure.isHidden,
|
|
@@ -48695,10 +48743,30 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
48695
48743
|
const type = field?.type ?? "integer";
|
|
48696
48744
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
48697
48745
|
return {
|
|
48746
|
+
/**
|
|
48747
|
+
* Get the display name of the dimension
|
|
48748
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
48749
|
+
*/
|
|
48698
48750
|
displayName: field?.string ?? dimension.fieldName,
|
|
48751
|
+
/**
|
|
48752
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
48753
|
+
* e.g. "stage_id", "create_date:month"
|
|
48754
|
+
*/
|
|
48699
48755
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
48756
|
+
/**
|
|
48757
|
+
* Get the name of the field of the dimension
|
|
48758
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
48759
|
+
*/
|
|
48700
48760
|
fieldName: dimension.fieldName,
|
|
48761
|
+
/**
|
|
48762
|
+
* Get the aggregate operator of the dimension
|
|
48763
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
48764
|
+
*/
|
|
48701
48765
|
granularity,
|
|
48766
|
+
/**
|
|
48767
|
+
* Get the type of the field of the dimension
|
|
48768
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
48769
|
+
*/
|
|
48702
48770
|
type,
|
|
48703
48771
|
order: dimension.order,
|
|
48704
48772
|
isValid: !!field
|
|
@@ -49775,6 +49843,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
49775
49843
|
//#endregion
|
|
49776
49844
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
49777
49845
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
49846
|
+
pivotId;
|
|
49778
49847
|
mutators = [
|
|
49779
49848
|
"reset",
|
|
49780
49849
|
"deferUpdates",
|
|
@@ -53331,6 +53400,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53331
53400
|
}
|
|
53332
53401
|
};
|
|
53333
53402
|
var FormulaCellWithDependencies = class {
|
|
53403
|
+
id;
|
|
53404
|
+
format;
|
|
53405
|
+
style;
|
|
53406
|
+
sheetId;
|
|
53407
|
+
getRangeString;
|
|
53334
53408
|
isFormula = true;
|
|
53335
53409
|
compiledFormula;
|
|
53336
53410
|
constructor(id, compiledFormula, format, style, dependencies, sheetId, getRangeString) {
|
|
@@ -53365,6 +53439,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53365
53439
|
}
|
|
53366
53440
|
};
|
|
53367
53441
|
var RangeReferenceToken = class {
|
|
53442
|
+
ranges;
|
|
53443
|
+
rangeIndex;
|
|
53444
|
+
sheetId;
|
|
53445
|
+
getRangeString;
|
|
53368
53446
|
type = "REFERENCE";
|
|
53369
53447
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
53370
53448
|
this.ranges = ranges;
|
|
@@ -57150,6 +57228,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57150
57228
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
57151
57229
|
}
|
|
57152
57230
|
var CompilationParametersBuilder = class {
|
|
57231
|
+
getters;
|
|
57232
|
+
computeCell;
|
|
57153
57233
|
evalContext;
|
|
57154
57234
|
rangeCache = {};
|
|
57155
57235
|
constructor(context, getters, computeCell) {
|
|
@@ -57603,6 +57683,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57603
57683
|
* It uses an R-Tree data structure to efficiently find dependent cells.
|
|
57604
57684
|
*/
|
|
57605
57685
|
var FormulaDependencyGraph = class {
|
|
57686
|
+
createEmptyPositionSet;
|
|
57606
57687
|
dependencies = new PositionMap();
|
|
57607
57688
|
rTree;
|
|
57608
57689
|
constructor(createEmptyPositionSet, data = []) {
|
|
@@ -57904,6 +57985,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
57904
57985
|
const ERROR_CYCLE_CELL = Object.freeze(createEvaluatedCell(new CircularDependencyError()));
|
|
57905
57986
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
57906
57987
|
var Evaluator = class {
|
|
57988
|
+
context;
|
|
57907
57989
|
getters;
|
|
57908
57990
|
compilationParams;
|
|
57909
57991
|
evaluatedCells = new PositionMap();
|
|
@@ -61959,6 +62041,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61959
62041
|
//#endregion
|
|
61960
62042
|
//#region src/collaborative/revisions.ts
|
|
61961
62043
|
var Revision = class {
|
|
62044
|
+
rootCommand;
|
|
62045
|
+
timestamp;
|
|
61962
62046
|
id;
|
|
61963
62047
|
clientId;
|
|
61964
62048
|
_commands = [];
|
|
@@ -61995,6 +62079,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61995
62079
|
//#region src/collaborative/session.ts
|
|
61996
62080
|
var ClientDisconnectedError = class extends Error {};
|
|
61997
62081
|
var Session = class extends EventBus {
|
|
62082
|
+
revisions;
|
|
62083
|
+
transportService;
|
|
62084
|
+
serverRevisionId;
|
|
61998
62085
|
/**
|
|
61999
62086
|
* Positions of the others client.
|
|
62000
62087
|
*/
|
|
@@ -65681,6 +65768,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
65681
65768
|
//#endregion
|
|
65682
65769
|
//#region src/helpers/internal_viewport.ts
|
|
65683
65770
|
var InternalViewport = class {
|
|
65771
|
+
getters;
|
|
65772
|
+
sheetId;
|
|
65773
|
+
boundaries;
|
|
65684
65774
|
top;
|
|
65685
65775
|
bottom;
|
|
65686
65776
|
left;
|
|
@@ -70610,6 +70700,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
70610
70700
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
70611
70701
|
}
|
|
70612
70702
|
var WebClipboardWrapper = class {
|
|
70703
|
+
clipboard;
|
|
70613
70704
|
constructor(clipboard) {
|
|
70614
70705
|
this.clipboard = clipboard;
|
|
70615
70706
|
}
|
|
@@ -71110,6 +71201,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71110
71201
|
* @param operations initial operations
|
|
71111
71202
|
*/
|
|
71112
71203
|
var Branch = class Branch {
|
|
71204
|
+
buildTransformation;
|
|
71205
|
+
operations;
|
|
71113
71206
|
constructor(buildTransformation, operations = []) {
|
|
71114
71207
|
this.buildTransformation = buildTransformation;
|
|
71115
71208
|
this.operations = operations;
|
|
@@ -71226,6 +71319,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71226
71319
|
* to revert it).
|
|
71227
71320
|
*/
|
|
71228
71321
|
var Operation = class {
|
|
71322
|
+
id;
|
|
71323
|
+
data;
|
|
71229
71324
|
constructor(id, data) {
|
|
71230
71325
|
this.id = id;
|
|
71231
71326
|
this.data = data;
|
|
@@ -71235,6 +71330,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71235
71330
|
}
|
|
71236
71331
|
};
|
|
71237
71332
|
var LazyOperation = class LazyOperation {
|
|
71333
|
+
id;
|
|
71334
|
+
lazyData;
|
|
71238
71335
|
constructor(id, lazyData) {
|
|
71239
71336
|
this.id = id;
|
|
71240
71337
|
this.lazyData = lazyData;
|
|
@@ -71260,6 +71357,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71260
71357
|
* ```
|
|
71261
71358
|
*/
|
|
71262
71359
|
var OperationSequence = class OperationSequence {
|
|
71360
|
+
operations;
|
|
71263
71361
|
constructor(operations) {
|
|
71264
71362
|
this.operations = operations;
|
|
71265
71363
|
}
|
|
@@ -71335,6 +71433,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71335
71433
|
*
|
|
71336
71434
|
*/
|
|
71337
71435
|
var Tree = class {
|
|
71436
|
+
buildTransformation;
|
|
71338
71437
|
branches;
|
|
71339
71438
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
71340
71439
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -71914,6 +72013,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71914
72013
|
* with the new selected anchor
|
|
71915
72014
|
*/
|
|
71916
72015
|
var SelectionStreamProcessorImpl = class {
|
|
72016
|
+
getters;
|
|
71917
72017
|
stream;
|
|
71918
72018
|
/**
|
|
71919
72019
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -75270,8 +75370,8 @@ exports.stores = stores;
|
|
|
75270
75370
|
exports.tokenColors = tokenColors;
|
|
75271
75371
|
exports.tokenize = tokenize;
|
|
75272
75372
|
|
|
75273
|
-
__info__.version = "18.4.
|
|
75274
|
-
__info__.date = "2026-05-
|
|
75275
|
-
__info__.hash = "
|
|
75373
|
+
__info__.version = "18.4.40";
|
|
75374
|
+
__info__.date = "2026-05-15T07:04:46.418Z";
|
|
75375
|
+
__info__.hash = "bb1e6d6";
|
|
75276
75376
|
|
|
75277
75377
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|