@odoo/o-spreadsheet 19.0.8 → 19.0.10
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 +44 -14
- package/dist/o-spreadsheet.d.ts +5 -395
- package/dist/o-spreadsheet.esm.js +44 -14
- package/dist/o-spreadsheet.iife.js +44 -14
- package/dist/o-spreadsheet.iife.min.js +250 -250
- package/dist/o_spreadsheet.xml +8 -6
- package/package.json +2 -2
|
@@ -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 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.10
|
|
6
|
+
* @date 2025-11-12T14:15:51.076Z
|
|
7
|
+
* @hash 18ac688
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, App, blockDom, useState, onPatched, useExternalListener, onWillUpdateProps, onWillStart, onWillPatch, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
|
|
@@ -2499,7 +2499,10 @@ function isInside(col, row, zone) {
|
|
|
2499
2499
|
* Check if a zone is inside another
|
|
2500
2500
|
*/
|
|
2501
2501
|
function isZoneInside(smallZone, biggerZone) {
|
|
2502
|
-
return
|
|
2502
|
+
return (smallZone.left >= biggerZone.left &&
|
|
2503
|
+
smallZone.right <= biggerZone.right &&
|
|
2504
|
+
smallZone.top >= biggerZone.top &&
|
|
2505
|
+
smallZone.bottom <= biggerZone.bottom);
|
|
2503
2506
|
}
|
|
2504
2507
|
function zoneToDimension(zone) {
|
|
2505
2508
|
return {
|
|
@@ -6902,7 +6905,7 @@ function getRangeString(range, forSheetId, getSheetName, options = { useBoundedR
|
|
|
6902
6905
|
let sheetName = "";
|
|
6903
6906
|
if (prefixSheet) {
|
|
6904
6907
|
if (range.invalidSheetName) {
|
|
6905
|
-
sheetName = range.invalidSheetName;
|
|
6908
|
+
sheetName = getCanonicalSymbolName(range.invalidSheetName);
|
|
6906
6909
|
}
|
|
6907
6910
|
else {
|
|
6908
6911
|
sheetName = getCanonicalSymbolName(getSheetName(range.sheetId));
|
|
@@ -24418,7 +24421,7 @@ let ScorecardChart$1 = class ScorecardChart extends AbstractChart {
|
|
|
24418
24421
|
return {
|
|
24419
24422
|
background: context.background,
|
|
24420
24423
|
type: "scorecard",
|
|
24421
|
-
keyValue: context.range
|
|
24424
|
+
keyValue: context.range?.[0]?.dataRange,
|
|
24422
24425
|
title: context.title || { text: "" },
|
|
24423
24426
|
baselineMode: DEFAULT_SCORECARD_BASELINE_MODE,
|
|
24424
24427
|
baselineColorUp: DEFAULT_SCORECARD_BASELINE_COLOR_UP,
|
|
@@ -29127,7 +29130,7 @@ class GaugeChart extends AbstractChart {
|
|
|
29127
29130
|
background: context.background,
|
|
29128
29131
|
title: context.title || { text: "" },
|
|
29129
29132
|
type: "gauge",
|
|
29130
|
-
dataRange: context.range
|
|
29133
|
+
dataRange: context.range?.[0]?.dataRange,
|
|
29131
29134
|
sectionRule: {
|
|
29132
29135
|
colors: {
|
|
29133
29136
|
lowerColor: DEFAULT_GAUGE_LOWER_COLOR,
|
|
@@ -31019,8 +31022,7 @@ function generateMasterChartConfig(chartJsConfig) {
|
|
|
31019
31022
|
.filter((ds) => !isTrendLineAxis(ds["xAxisID"]))
|
|
31020
31023
|
.map((ds) => ({
|
|
31021
31024
|
...ds,
|
|
31022
|
-
pointRadius: 0,
|
|
31023
|
-
showLine: true,
|
|
31025
|
+
pointRadius: ds.showLine === false ? 2 : 0, // Show points only for scatter plots
|
|
31024
31026
|
})),
|
|
31025
31027
|
},
|
|
31026
31028
|
options: {
|
|
@@ -34131,7 +34133,7 @@ class ContentEditableHelper {
|
|
|
34131
34133
|
else {
|
|
34132
34134
|
text += NEWLINE;
|
|
34133
34135
|
}
|
|
34134
|
-
emptyParagraph =
|
|
34136
|
+
emptyParagraph = isEmptyParagraph(current.value);
|
|
34135
34137
|
continue;
|
|
34136
34138
|
}
|
|
34137
34139
|
if (!current.value.hasChildNodes()) {
|
|
@@ -34152,6 +34154,21 @@ function compareContentToSpanElement(content, node) {
|
|
|
34152
34154
|
const sameContent = node.innerText === content.value;
|
|
34153
34155
|
return sameColor && sameClass && sameContent;
|
|
34154
34156
|
}
|
|
34157
|
+
const doc = new DOMParser();
|
|
34158
|
+
const brNode = doc.parseFromString("<br>", "text/html").body.firstChild;
|
|
34159
|
+
const spanBrNode = doc.parseFromString("<span><br></span>", "text/html").body.firstChild;
|
|
34160
|
+
function isEmptyParagraph(node) {
|
|
34161
|
+
if (node.childNodes.length > 1)
|
|
34162
|
+
return false;
|
|
34163
|
+
const node2 = node.firstChild?.cloneNode(true);
|
|
34164
|
+
if (!node2)
|
|
34165
|
+
return true;
|
|
34166
|
+
if (!(node2 instanceof Element))
|
|
34167
|
+
return false;
|
|
34168
|
+
node2.removeAttribute("class");
|
|
34169
|
+
node2.removeAttribute("style");
|
|
34170
|
+
return node2.isEqualNode(brNode) || node2.isEqualNode(spanBrNode) || false;
|
|
34171
|
+
}
|
|
34155
34172
|
|
|
34156
34173
|
class FunctionDescriptionProvider extends Component {
|
|
34157
34174
|
static template = "o-spreadsheet-FunctionDescriptionProvider";
|
|
@@ -35147,6 +35164,7 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
35147
35164
|
this.highlightStore.register(this);
|
|
35148
35165
|
this.onDispose(() => {
|
|
35149
35166
|
this.highlightStore.unRegister(this);
|
|
35167
|
+
this._cancelEdition();
|
|
35150
35168
|
});
|
|
35151
35169
|
}
|
|
35152
35170
|
handleEvent(event) {
|
|
@@ -52174,6 +52192,9 @@ class GridRenderer extends SpreadsheetStore {
|
|
|
52174
52192
|
break;
|
|
52175
52193
|
}
|
|
52176
52194
|
}
|
|
52195
|
+
finalize() {
|
|
52196
|
+
this.zonesWithPreventedAnimationsInNextFrame = recomputeZones(this.zonesWithPreventedAnimationsInNextFrame);
|
|
52197
|
+
}
|
|
52177
52198
|
get renderingLayers() {
|
|
52178
52199
|
return ["Background", "Headers"];
|
|
52179
52200
|
}
|
|
@@ -80471,6 +80492,7 @@ topbarMenuRegistry
|
|
|
80471
80492
|
.add("file", {
|
|
80472
80493
|
name: _t("File"),
|
|
80473
80494
|
sequence: 10,
|
|
80495
|
+
isReadonlyAllowed: true,
|
|
80474
80496
|
})
|
|
80475
80497
|
.addChild("settings", ["file"], {
|
|
80476
80498
|
name: _t("Settings"),
|
|
@@ -80485,6 +80507,7 @@ topbarMenuRegistry
|
|
|
80485
80507
|
.add("edit", {
|
|
80486
80508
|
name: _t("Edit"),
|
|
80487
80509
|
sequence: 20,
|
|
80510
|
+
isReadonlyAllowed: true,
|
|
80488
80511
|
})
|
|
80489
80512
|
.addChild("undo", ["edit"], {
|
|
80490
80513
|
...undo,
|
|
@@ -80569,6 +80592,7 @@ topbarMenuRegistry
|
|
|
80569
80592
|
.add("view", {
|
|
80570
80593
|
name: _t("View"),
|
|
80571
80594
|
sequence: 30,
|
|
80595
|
+
isReadonlyAllowed: true,
|
|
80572
80596
|
})
|
|
80573
80597
|
.addChild("unfreeze_panes", ["view"], {
|
|
80574
80598
|
...unFreezePane,
|
|
@@ -80660,6 +80684,7 @@ topbarMenuRegistry
|
|
|
80660
80684
|
.add("insert", {
|
|
80661
80685
|
name: _t("Insert"),
|
|
80662
80686
|
sequence: 40,
|
|
80687
|
+
isReadonlyAllowed: true,
|
|
80663
80688
|
})
|
|
80664
80689
|
.addChild("insert_row", ["insert"], {
|
|
80665
80690
|
...insertRow,
|
|
@@ -80771,7 +80796,11 @@ topbarMenuRegistry
|
|
|
80771
80796
|
// ---------------------------------------------------------------------
|
|
80772
80797
|
// FORMAT MENU ITEMS
|
|
80773
80798
|
// ---------------------------------------------------------------------
|
|
80774
|
-
.add("format", {
|
|
80799
|
+
.add("format", {
|
|
80800
|
+
name: _t("Format"),
|
|
80801
|
+
sequence: 50,
|
|
80802
|
+
isReadonlyAllowed: true,
|
|
80803
|
+
})
|
|
80775
80804
|
.addChild("format_number", ["format"], {
|
|
80776
80805
|
...formatNumberMenuItemSpec,
|
|
80777
80806
|
name: _t("Number"),
|
|
@@ -80863,6 +80892,7 @@ topbarMenuRegistry
|
|
|
80863
80892
|
.add("data", {
|
|
80864
80893
|
name: _t("Data"),
|
|
80865
80894
|
sequence: 60,
|
|
80895
|
+
isReadonlyAllowed: true,
|
|
80866
80896
|
})
|
|
80867
80897
|
.addChild("sort_range", ["data"], {
|
|
80868
80898
|
...sortRange,
|
|
@@ -88902,6 +88932,6 @@ const chartHelpers = { ...CHART_HELPERS, ...CHART_RUNTIME_HELPERS };
|
|
|
88902
88932
|
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 };
|
|
88903
88933
|
|
|
88904
88934
|
|
|
88905
|
-
__info__.version = "19.0.
|
|
88906
|
-
__info__.date = "2025-
|
|
88907
|
-
__info__.hash = "
|
|
88935
|
+
__info__.version = "19.0.10";
|
|
88936
|
+
__info__.date = "2025-11-12T14:15:51.076Z";
|
|
88937
|
+
__info__.hash = "18ac688";
|
|
@@ -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 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.10
|
|
6
|
+
* @date 2025-11-12T14:15:51.076Z
|
|
7
|
+
* @hash 18ac688
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -2500,7 +2500,10 @@
|
|
|
2500
2500
|
* Check if a zone is inside another
|
|
2501
2501
|
*/
|
|
2502
2502
|
function isZoneInside(smallZone, biggerZone) {
|
|
2503
|
-
return
|
|
2503
|
+
return (smallZone.left >= biggerZone.left &&
|
|
2504
|
+
smallZone.right <= biggerZone.right &&
|
|
2505
|
+
smallZone.top >= biggerZone.top &&
|
|
2506
|
+
smallZone.bottom <= biggerZone.bottom);
|
|
2504
2507
|
}
|
|
2505
2508
|
function zoneToDimension(zone) {
|
|
2506
2509
|
return {
|
|
@@ -6903,7 +6906,7 @@
|
|
|
6903
6906
|
let sheetName = "";
|
|
6904
6907
|
if (prefixSheet) {
|
|
6905
6908
|
if (range.invalidSheetName) {
|
|
6906
|
-
sheetName = range.invalidSheetName;
|
|
6909
|
+
sheetName = getCanonicalSymbolName(range.invalidSheetName);
|
|
6907
6910
|
}
|
|
6908
6911
|
else {
|
|
6909
6912
|
sheetName = getCanonicalSymbolName(getSheetName(range.sheetId));
|
|
@@ -24419,7 +24422,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
24419
24422
|
return {
|
|
24420
24423
|
background: context.background,
|
|
24421
24424
|
type: "scorecard",
|
|
24422
|
-
keyValue: context.range
|
|
24425
|
+
keyValue: context.range?.[0]?.dataRange,
|
|
24423
24426
|
title: context.title || { text: "" },
|
|
24424
24427
|
baselineMode: DEFAULT_SCORECARD_BASELINE_MODE,
|
|
24425
24428
|
baselineColorUp: DEFAULT_SCORECARD_BASELINE_COLOR_UP,
|
|
@@ -29128,7 +29131,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
29128
29131
|
background: context.background,
|
|
29129
29132
|
title: context.title || { text: "" },
|
|
29130
29133
|
type: "gauge",
|
|
29131
|
-
dataRange: context.range
|
|
29134
|
+
dataRange: context.range?.[0]?.dataRange,
|
|
29132
29135
|
sectionRule: {
|
|
29133
29136
|
colors: {
|
|
29134
29137
|
lowerColor: DEFAULT_GAUGE_LOWER_COLOR,
|
|
@@ -31020,8 +31023,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31020
31023
|
.filter((ds) => !isTrendLineAxis(ds["xAxisID"]))
|
|
31021
31024
|
.map((ds) => ({
|
|
31022
31025
|
...ds,
|
|
31023
|
-
pointRadius: 0,
|
|
31024
|
-
showLine: true,
|
|
31026
|
+
pointRadius: ds.showLine === false ? 2 : 0, // Show points only for scatter plots
|
|
31025
31027
|
})),
|
|
31026
31028
|
},
|
|
31027
31029
|
options: {
|
|
@@ -34132,7 +34134,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
34132
34134
|
else {
|
|
34133
34135
|
text += NEWLINE;
|
|
34134
34136
|
}
|
|
34135
|
-
emptyParagraph =
|
|
34137
|
+
emptyParagraph = isEmptyParagraph(current.value);
|
|
34136
34138
|
continue;
|
|
34137
34139
|
}
|
|
34138
34140
|
if (!current.value.hasChildNodes()) {
|
|
@@ -34153,6 +34155,21 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
34153
34155
|
const sameContent = node.innerText === content.value;
|
|
34154
34156
|
return sameColor && sameClass && sameContent;
|
|
34155
34157
|
}
|
|
34158
|
+
const doc = new DOMParser();
|
|
34159
|
+
const brNode = doc.parseFromString("<br>", "text/html").body.firstChild;
|
|
34160
|
+
const spanBrNode = doc.parseFromString("<span><br></span>", "text/html").body.firstChild;
|
|
34161
|
+
function isEmptyParagraph(node) {
|
|
34162
|
+
if (node.childNodes.length > 1)
|
|
34163
|
+
return false;
|
|
34164
|
+
const node2 = node.firstChild?.cloneNode(true);
|
|
34165
|
+
if (!node2)
|
|
34166
|
+
return true;
|
|
34167
|
+
if (!(node2 instanceof Element))
|
|
34168
|
+
return false;
|
|
34169
|
+
node2.removeAttribute("class");
|
|
34170
|
+
node2.removeAttribute("style");
|
|
34171
|
+
return node2.isEqualNode(brNode) || node2.isEqualNode(spanBrNode) || false;
|
|
34172
|
+
}
|
|
34156
34173
|
|
|
34157
34174
|
class FunctionDescriptionProvider extends owl.Component {
|
|
34158
34175
|
static template = "o-spreadsheet-FunctionDescriptionProvider";
|
|
@@ -35148,6 +35165,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
35148
35165
|
this.highlightStore.register(this);
|
|
35149
35166
|
this.onDispose(() => {
|
|
35150
35167
|
this.highlightStore.unRegister(this);
|
|
35168
|
+
this._cancelEdition();
|
|
35151
35169
|
});
|
|
35152
35170
|
}
|
|
35153
35171
|
handleEvent(event) {
|
|
@@ -52175,6 +52193,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
52175
52193
|
break;
|
|
52176
52194
|
}
|
|
52177
52195
|
}
|
|
52196
|
+
finalize() {
|
|
52197
|
+
this.zonesWithPreventedAnimationsInNextFrame = recomputeZones(this.zonesWithPreventedAnimationsInNextFrame);
|
|
52198
|
+
}
|
|
52178
52199
|
get renderingLayers() {
|
|
52179
52200
|
return ["Background", "Headers"];
|
|
52180
52201
|
}
|
|
@@ -80472,6 +80493,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80472
80493
|
.add("file", {
|
|
80473
80494
|
name: _t("File"),
|
|
80474
80495
|
sequence: 10,
|
|
80496
|
+
isReadonlyAllowed: true,
|
|
80475
80497
|
})
|
|
80476
80498
|
.addChild("settings", ["file"], {
|
|
80477
80499
|
name: _t("Settings"),
|
|
@@ -80486,6 +80508,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80486
80508
|
.add("edit", {
|
|
80487
80509
|
name: _t("Edit"),
|
|
80488
80510
|
sequence: 20,
|
|
80511
|
+
isReadonlyAllowed: true,
|
|
80489
80512
|
})
|
|
80490
80513
|
.addChild("undo", ["edit"], {
|
|
80491
80514
|
...undo,
|
|
@@ -80570,6 +80593,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80570
80593
|
.add("view", {
|
|
80571
80594
|
name: _t("View"),
|
|
80572
80595
|
sequence: 30,
|
|
80596
|
+
isReadonlyAllowed: true,
|
|
80573
80597
|
})
|
|
80574
80598
|
.addChild("unfreeze_panes", ["view"], {
|
|
80575
80599
|
...unFreezePane,
|
|
@@ -80661,6 +80685,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80661
80685
|
.add("insert", {
|
|
80662
80686
|
name: _t("Insert"),
|
|
80663
80687
|
sequence: 40,
|
|
80688
|
+
isReadonlyAllowed: true,
|
|
80664
80689
|
})
|
|
80665
80690
|
.addChild("insert_row", ["insert"], {
|
|
80666
80691
|
...insertRow,
|
|
@@ -80772,7 +80797,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80772
80797
|
// ---------------------------------------------------------------------
|
|
80773
80798
|
// FORMAT MENU ITEMS
|
|
80774
80799
|
// ---------------------------------------------------------------------
|
|
80775
|
-
.add("format", {
|
|
80800
|
+
.add("format", {
|
|
80801
|
+
name: _t("Format"),
|
|
80802
|
+
sequence: 50,
|
|
80803
|
+
isReadonlyAllowed: true,
|
|
80804
|
+
})
|
|
80776
80805
|
.addChild("format_number", ["format"], {
|
|
80777
80806
|
...formatNumberMenuItemSpec,
|
|
80778
80807
|
name: _t("Number"),
|
|
@@ -80864,6 +80893,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
80864
80893
|
.add("data", {
|
|
80865
80894
|
name: _t("Data"),
|
|
80866
80895
|
sequence: 60,
|
|
80896
|
+
isReadonlyAllowed: true,
|
|
80867
80897
|
})
|
|
80868
80898
|
.addChild("sort_range", ["data"], {
|
|
80869
80899
|
...sortRange,
|
|
@@ -88953,9 +88983,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
88953
88983
|
exports.tokenize = tokenize;
|
|
88954
88984
|
|
|
88955
88985
|
|
|
88956
|
-
__info__.version = "19.0.
|
|
88957
|
-
__info__.date = "2025-
|
|
88958
|
-
__info__.hash = "
|
|
88986
|
+
__info__.version = "19.0.10";
|
|
88987
|
+
__info__.date = "2025-11-12T14:15:51.076Z";
|
|
88988
|
+
__info__.hash = "18ac688";
|
|
88959
88989
|
|
|
88960
88990
|
|
|
88961
88991
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|