@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
|
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";
|
|
@@ -1382,6 +1382,7 @@ function getAlternatingColorsPalette(quantity) {
|
|
|
1382
1382
|
else return ALTERNATING_COLORS_XL;
|
|
1383
1383
|
}
|
|
1384
1384
|
var ColorGenerator = class {
|
|
1385
|
+
preferredColors;
|
|
1385
1386
|
currentColorIndex = 0;
|
|
1386
1387
|
palette;
|
|
1387
1388
|
constructor(paletteSize, preferredColors = []) {
|
|
@@ -1589,6 +1590,7 @@ const _t = function(s, ...values) {
|
|
|
1589
1590
|
return sprintf(_translate(s), ...values);
|
|
1590
1591
|
};
|
|
1591
1592
|
var LazyTranslatedString = class extends String {
|
|
1593
|
+
values;
|
|
1592
1594
|
constructor(str, values) {
|
|
1593
1595
|
super(str);
|
|
1594
1596
|
this.values = values;
|
|
@@ -2724,6 +2726,8 @@ const CellErrorType = {
|
|
|
2724
2726
|
};
|
|
2725
2727
|
const errorTypes = new Set(Object.values(CellErrorType));
|
|
2726
2728
|
var EvaluationError = class {
|
|
2729
|
+
message;
|
|
2730
|
+
value;
|
|
2727
2731
|
constructor(message = _t("Error"), value = CellErrorType.GenericError) {
|
|
2728
2732
|
this.message = message;
|
|
2729
2733
|
this.value = value;
|
|
@@ -2756,6 +2760,7 @@ var UnknownFunctionError = class extends EvaluationError {
|
|
|
2756
2760
|
}
|
|
2757
2761
|
};
|
|
2758
2762
|
var SplillBlockedError = class extends EvaluationError {
|
|
2763
|
+
errorOriginPosition;
|
|
2759
2764
|
constructor(message = _t("Spill range is not empty"), errorOriginPosition) {
|
|
2760
2765
|
super(message, CellErrorType.SpilledBlocked);
|
|
2761
2766
|
this.errorOriginPosition = errorOriginPosition;
|
|
@@ -6298,6 +6303,8 @@ const selectPastedZone = (selection, sourceZones, pastedZones) => {
|
|
|
6298
6303
|
//#endregion
|
|
6299
6304
|
//#region src/clipboard_handlers/abstract_clipboard_handler.ts
|
|
6300
6305
|
var ClipboardHandler = class {
|
|
6306
|
+
getters;
|
|
6307
|
+
dispatch;
|
|
6301
6308
|
constructor(getters, dispatch) {
|
|
6302
6309
|
this.getters = getters;
|
|
6303
6310
|
this.dispatch = dispatch;
|
|
@@ -8571,6 +8578,7 @@ var DependencyContainer = class extends EventBus {
|
|
|
8571
8578
|
}
|
|
8572
8579
|
};
|
|
8573
8580
|
var StoreFactory = class {
|
|
8581
|
+
get;
|
|
8574
8582
|
pendingBuilds = /* @__PURE__ */ new Set();
|
|
8575
8583
|
constructor(get) {
|
|
8576
8584
|
this.get = get;
|
|
@@ -8615,6 +8623,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8615
8623
|
return MetaStore;
|
|
8616
8624
|
}
|
|
8617
8625
|
var DisposableStore = class {
|
|
8626
|
+
get;
|
|
8618
8627
|
disposeCallbacks = [];
|
|
8619
8628
|
constructor(get) {
|
|
8620
8629
|
this.get = get;
|
|
@@ -17230,6 +17239,7 @@ function hasStringMessage(obj) {
|
|
|
17230
17239
|
//#endregion
|
|
17231
17240
|
//#region src/formulas/code_builder.ts
|
|
17232
17241
|
var FunctionCodeBuilder = class {
|
|
17242
|
+
scope;
|
|
17233
17243
|
code = "";
|
|
17234
17244
|
constructor(scope = new Scope()) {
|
|
17235
17245
|
this.scope = scope;
|
|
@@ -17245,6 +17255,8 @@ var FunctionCodeBuilder = class {
|
|
|
17245
17255
|
}
|
|
17246
17256
|
};
|
|
17247
17257
|
var FunctionCodeImpl = class {
|
|
17258
|
+
scope;
|
|
17259
|
+
returnExpression;
|
|
17248
17260
|
code;
|
|
17249
17261
|
constructor(scope, code, returnExpression) {
|
|
17250
17262
|
this.scope = scope;
|
|
@@ -19196,6 +19208,7 @@ function getScorecardConfiguration({ width, height }, runtime) {
|
|
|
19196
19208
|
}, runtime).computeDesign();
|
|
19197
19209
|
}
|
|
19198
19210
|
var ScorecardChartConfigBuilder = class {
|
|
19211
|
+
runtime;
|
|
19199
19212
|
context;
|
|
19200
19213
|
width;
|
|
19201
19214
|
height;
|
|
@@ -22544,6 +22557,10 @@ var GaugeChartComponent = class extends Component {
|
|
|
22544
22557
|
* Animation interpolating values using the ease-out quartic curve function (chartJS default easing)
|
|
22545
22558
|
*/
|
|
22546
22559
|
var Animation = class {
|
|
22560
|
+
startValue;
|
|
22561
|
+
endValue;
|
|
22562
|
+
duration;
|
|
22563
|
+
callback;
|
|
22547
22564
|
startTime = void 0;
|
|
22548
22565
|
animationFrameId = null;
|
|
22549
22566
|
constructor(startValue, endValue, duration, callback) {
|
|
@@ -24903,6 +24920,7 @@ function getMaxFigureSize(getters, figureSize) {
|
|
|
24903
24920
|
* Represent a raw XML string
|
|
24904
24921
|
*/
|
|
24905
24922
|
var XMLString = class {
|
|
24923
|
+
xmlString;
|
|
24906
24924
|
/**
|
|
24907
24925
|
* @param xmlString should be a well formed, properly escaped XML string
|
|
24908
24926
|
*/
|
|
@@ -25624,6 +25642,11 @@ var Popover = class extends Component {
|
|
|
25624
25642
|
}
|
|
25625
25643
|
};
|
|
25626
25644
|
var PopoverPositionContext = class {
|
|
25645
|
+
anchorRect;
|
|
25646
|
+
containerRect;
|
|
25647
|
+
propsMaxSize;
|
|
25648
|
+
spreadsheetOffset;
|
|
25649
|
+
lastPosition;
|
|
25627
25650
|
constructor(anchorRect, containerRect, propsMaxSize, spreadsheetOffset, lastPosition) {
|
|
25628
25651
|
this.anchorRect = anchorRect;
|
|
25629
25652
|
this.containerRect = containerRect;
|
|
@@ -28839,6 +28862,7 @@ var Composer = class extends Component {
|
|
|
28839
28862
|
//#endregion
|
|
28840
28863
|
//#region src/components/composer/standalone_composer/standalone_composer_store.ts
|
|
28841
28864
|
var StandaloneComposerStore = class extends AbstractComposerStore {
|
|
28865
|
+
args;
|
|
28842
28866
|
constructor(get, args) {
|
|
28843
28867
|
super(get);
|
|
28844
28868
|
this.args = args;
|
|
@@ -29894,6 +29918,7 @@ var DOMDndHelper = class {
|
|
|
29894
29918
|
}
|
|
29895
29919
|
};
|
|
29896
29920
|
var ContainerWrapper = class {
|
|
29921
|
+
el;
|
|
29897
29922
|
constructor(el) {
|
|
29898
29923
|
this.el = el;
|
|
29899
29924
|
}
|
|
@@ -29965,6 +29990,10 @@ var FocusStore = class {
|
|
|
29965
29990
|
* This plugin handles this internal state.
|
|
29966
29991
|
*/
|
|
29967
29992
|
var SelectionInputStore = class extends SpreadsheetStore {
|
|
29993
|
+
initialRanges;
|
|
29994
|
+
inputHasSingleRange;
|
|
29995
|
+
colors;
|
|
29996
|
+
disabledRanges;
|
|
29968
29997
|
mutators = [
|
|
29969
29998
|
"resetWithRanges",
|
|
29970
29999
|
"focusById",
|
|
@@ -47500,6 +47529,8 @@ var MoreFormatsPanel = class extends Component {
|
|
|
47500
47529
|
//#endregion
|
|
47501
47530
|
//#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.ts
|
|
47502
47531
|
var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
|
|
47532
|
+
pivotId;
|
|
47533
|
+
initialMeasure;
|
|
47503
47534
|
mutators = [
|
|
47504
47535
|
"cancelMeasureDisplayEdition",
|
|
47505
47536
|
"updateMeasureDisplayType",
|
|
@@ -48673,13 +48704,30 @@ function createMeasure(fields, measure) {
|
|
|
48673
48704
|
} : fields[fieldName];
|
|
48674
48705
|
const aggregator = measure.aggregator;
|
|
48675
48706
|
return {
|
|
48707
|
+
/**
|
|
48708
|
+
* Get the id of the measure, as it is stored in the pivot formula
|
|
48709
|
+
*/
|
|
48676
48710
|
id: measure.id,
|
|
48711
|
+
/**
|
|
48712
|
+
* Display name of the measure
|
|
48713
|
+
* e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
|
|
48714
|
+
*/
|
|
48677
48715
|
get displayName() {
|
|
48678
48716
|
return measure.userDefinedName ?? field?.string ?? measure.fieldName;
|
|
48679
48717
|
},
|
|
48680
48718
|
userDefinedName: measure.userDefinedName,
|
|
48719
|
+
/**
|
|
48720
|
+
* Get the name of the field of the measure
|
|
48721
|
+
*/
|
|
48681
48722
|
fieldName,
|
|
48723
|
+
/**
|
|
48724
|
+
* Get the aggregator of the measure
|
|
48725
|
+
*/
|
|
48682
48726
|
aggregator,
|
|
48727
|
+
/**
|
|
48728
|
+
* Get the type of the measure field
|
|
48729
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
48730
|
+
*/
|
|
48683
48731
|
type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
|
|
48684
48732
|
isValid: !!(field || measure.computedBy),
|
|
48685
48733
|
isHidden: measure.isHidden,
|
|
@@ -48693,10 +48741,30 @@ function createPivotDimension(fields, dimension) {
|
|
|
48693
48741
|
const type = field?.type ?? "integer";
|
|
48694
48742
|
const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
|
|
48695
48743
|
return {
|
|
48744
|
+
/**
|
|
48745
|
+
* Get the display name of the dimension
|
|
48746
|
+
* e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
|
|
48747
|
+
*/
|
|
48696
48748
|
displayName: field?.string ?? dimension.fieldName,
|
|
48749
|
+
/**
|
|
48750
|
+
* Get the name of the dimension, as it is stored in the pivot formula
|
|
48751
|
+
* e.g. "stage_id", "create_date:month"
|
|
48752
|
+
*/
|
|
48697
48753
|
nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
|
|
48754
|
+
/**
|
|
48755
|
+
* Get the name of the field of the dimension
|
|
48756
|
+
* e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
|
|
48757
|
+
*/
|
|
48698
48758
|
fieldName: dimension.fieldName,
|
|
48759
|
+
/**
|
|
48760
|
+
* Get the aggregate operator of the dimension
|
|
48761
|
+
* e.g. "stage_id" -> undefined, "create_date:month" -> "month"
|
|
48762
|
+
*/
|
|
48699
48763
|
granularity,
|
|
48764
|
+
/**
|
|
48765
|
+
* Get the type of the field of the dimension
|
|
48766
|
+
* e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
|
|
48767
|
+
*/
|
|
48700
48768
|
type,
|
|
48701
48769
|
order: dimension.order,
|
|
48702
48770
|
isValid: !!field
|
|
@@ -49773,6 +49841,7 @@ function adaptPivotRange(range, applyChange) {
|
|
|
49773
49841
|
//#endregion
|
|
49774
49842
|
//#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.ts
|
|
49775
49843
|
var PivotSidePanelStore = class extends SpreadsheetStore {
|
|
49844
|
+
pivotId;
|
|
49776
49845
|
mutators = [
|
|
49777
49846
|
"reset",
|
|
49778
49847
|
"deferUpdates",
|
|
@@ -53329,6 +53398,11 @@ var CellPlugin = class extends CorePlugin {
|
|
|
53329
53398
|
}
|
|
53330
53399
|
};
|
|
53331
53400
|
var FormulaCellWithDependencies = class {
|
|
53401
|
+
id;
|
|
53402
|
+
format;
|
|
53403
|
+
style;
|
|
53404
|
+
sheetId;
|
|
53405
|
+
getRangeString;
|
|
53332
53406
|
isFormula = true;
|
|
53333
53407
|
compiledFormula;
|
|
53334
53408
|
constructor(id, compiledFormula, format, style, dependencies, sheetId, getRangeString) {
|
|
@@ -53363,6 +53437,10 @@ var FormulaCellWithDependencies = class {
|
|
|
53363
53437
|
}
|
|
53364
53438
|
};
|
|
53365
53439
|
var RangeReferenceToken = class {
|
|
53440
|
+
ranges;
|
|
53441
|
+
rangeIndex;
|
|
53442
|
+
sheetId;
|
|
53443
|
+
getRangeString;
|
|
53366
53444
|
type = "REFERENCE";
|
|
53367
53445
|
constructor(ranges, rangeIndex, sheetId, getRangeString) {
|
|
53368
53446
|
this.ranges = ranges;
|
|
@@ -57148,6 +57226,8 @@ function buildCompilationParameters(context, getters, computeCell) {
|
|
|
57148
57226
|
return new CompilationParametersBuilder(context, getters, computeCell).getParameters();
|
|
57149
57227
|
}
|
|
57150
57228
|
var CompilationParametersBuilder = class {
|
|
57229
|
+
getters;
|
|
57230
|
+
computeCell;
|
|
57151
57231
|
evalContext;
|
|
57152
57232
|
rangeCache = {};
|
|
57153
57233
|
constructor(context, getters, computeCell) {
|
|
@@ -57601,6 +57681,7 @@ var ZoneRBush = class extends import_rbush_min.default {
|
|
|
57601
57681
|
* It uses an R-Tree data structure to efficiently find dependent cells.
|
|
57602
57682
|
*/
|
|
57603
57683
|
var FormulaDependencyGraph = class {
|
|
57684
|
+
createEmptyPositionSet;
|
|
57604
57685
|
dependencies = new PositionMap();
|
|
57605
57686
|
rTree;
|
|
57606
57687
|
constructor(createEmptyPositionSet, data = []) {
|
|
@@ -57902,6 +57983,7 @@ const MAX_ITERATION = 30;
|
|
|
57902
57983
|
const ERROR_CYCLE_CELL = Object.freeze(createEvaluatedCell(new CircularDependencyError()));
|
|
57903
57984
|
const EMPTY_CELL = Object.freeze(createEvaluatedCell({ value: null }));
|
|
57904
57985
|
var Evaluator = class {
|
|
57986
|
+
context;
|
|
57905
57987
|
getters;
|
|
57906
57988
|
compilationParams;
|
|
57907
57989
|
evaluatedCells = new PositionMap();
|
|
@@ -61957,6 +62039,8 @@ function transformPositionWithMerge(toTransform, executed) {
|
|
|
61957
62039
|
//#endregion
|
|
61958
62040
|
//#region src/collaborative/revisions.ts
|
|
61959
62041
|
var Revision = class {
|
|
62042
|
+
rootCommand;
|
|
62043
|
+
timestamp;
|
|
61960
62044
|
id;
|
|
61961
62045
|
clientId;
|
|
61962
62046
|
_commands = [];
|
|
@@ -61993,6 +62077,9 @@ var Revision = class {
|
|
|
61993
62077
|
//#region src/collaborative/session.ts
|
|
61994
62078
|
var ClientDisconnectedError = class extends Error {};
|
|
61995
62079
|
var Session = class extends EventBus {
|
|
62080
|
+
revisions;
|
|
62081
|
+
transportService;
|
|
62082
|
+
serverRevisionId;
|
|
61996
62083
|
/**
|
|
61997
62084
|
* Positions of the others client.
|
|
61998
62085
|
*/
|
|
@@ -65679,6 +65766,9 @@ var GridSelectionPlugin = class extends UIPlugin {
|
|
|
65679
65766
|
//#endregion
|
|
65680
65767
|
//#region src/helpers/internal_viewport.ts
|
|
65681
65768
|
var InternalViewport = class {
|
|
65769
|
+
getters;
|
|
65770
|
+
sheetId;
|
|
65771
|
+
boundaries;
|
|
65682
65772
|
top;
|
|
65683
65773
|
bottom;
|
|
65684
65774
|
left;
|
|
@@ -70608,6 +70698,7 @@ function instantiateClipboard() {
|
|
|
70608
70698
|
return new WebClipboardWrapper(navigator.clipboard);
|
|
70609
70699
|
}
|
|
70610
70700
|
var WebClipboardWrapper = class {
|
|
70701
|
+
clipboard;
|
|
70611
70702
|
constructor(clipboard) {
|
|
70612
70703
|
this.clipboard = clipboard;
|
|
70613
70704
|
}
|
|
@@ -71108,6 +71199,8 @@ function inverseCommand(cmd) {
|
|
|
71108
71199
|
* @param operations initial operations
|
|
71109
71200
|
*/
|
|
71110
71201
|
var Branch = class Branch {
|
|
71202
|
+
buildTransformation;
|
|
71203
|
+
operations;
|
|
71111
71204
|
constructor(buildTransformation, operations = []) {
|
|
71112
71205
|
this.buildTransformation = buildTransformation;
|
|
71113
71206
|
this.operations = operations;
|
|
@@ -71224,6 +71317,8 @@ var Branch = class Branch {
|
|
|
71224
71317
|
* to revert it).
|
|
71225
71318
|
*/
|
|
71226
71319
|
var Operation = class {
|
|
71320
|
+
id;
|
|
71321
|
+
data;
|
|
71227
71322
|
constructor(id, data) {
|
|
71228
71323
|
this.id = id;
|
|
71229
71324
|
this.data = data;
|
|
@@ -71233,6 +71328,8 @@ var Operation = class {
|
|
|
71233
71328
|
}
|
|
71234
71329
|
};
|
|
71235
71330
|
var LazyOperation = class LazyOperation {
|
|
71331
|
+
id;
|
|
71332
|
+
lazyData;
|
|
71236
71333
|
constructor(id, lazyData) {
|
|
71237
71334
|
this.id = id;
|
|
71238
71335
|
this.lazyData = lazyData;
|
|
@@ -71258,6 +71355,7 @@ var LazyOperation = class LazyOperation {
|
|
|
71258
71355
|
* ```
|
|
71259
71356
|
*/
|
|
71260
71357
|
var OperationSequence = class OperationSequence {
|
|
71358
|
+
operations;
|
|
71261
71359
|
constructor(operations) {
|
|
71262
71360
|
this.operations = operations;
|
|
71263
71361
|
}
|
|
@@ -71333,6 +71431,7 @@ var OperationSequence = class OperationSequence {
|
|
|
71333
71431
|
*
|
|
71334
71432
|
*/
|
|
71335
71433
|
var Tree = class {
|
|
71434
|
+
buildTransformation;
|
|
71336
71435
|
branches;
|
|
71337
71436
|
branchingOperationIds = /* @__PURE__ */ new Map();
|
|
71338
71437
|
constructor(buildTransformation, initialBranch) {
|
|
@@ -71912,6 +72011,7 @@ var EventStream = class {
|
|
|
71912
72011
|
* with the new selected anchor
|
|
71913
72012
|
*/
|
|
71914
72013
|
var SelectionStreamProcessorImpl = class {
|
|
72014
|
+
getters;
|
|
71915
72015
|
stream;
|
|
71916
72016
|
/**
|
|
71917
72017
|
* "Active" anchor used as a reference to compute new anchors
|
|
@@ -75219,6 +75319,6 @@ const chartHelpers = {
|
|
|
75219
75319
|
//#endregion
|
|
75220
75320
|
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, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
75221
75321
|
|
|
75222
|
-
__info__.version = "18.4.
|
|
75223
|
-
__info__.date = "2026-05-
|
|
75224
|
-
__info__.hash = "
|
|
75322
|
+
__info__.version = "18.4.40";
|
|
75323
|
+
__info__.date = "2026-05-15T07:04:46.418Z";
|
|
75324
|
+
__info__.hash = "bb1e6d6";
|