@odoo/o-spreadsheet 18.4.14 → 18.4.17
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 +45 -12
- package/dist/o-spreadsheet.d.ts +1 -0
- package/dist/o-spreadsheet.esm.js +45 -12
- package/dist/o-spreadsheet.iife.js +45 -12
- package/dist/o-spreadsheet.iife.min.js +234 -234
- 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 18.4.
|
|
6
|
-
* @date 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.4.17
|
|
6
|
+
* @date 2025-11-12T14:15:30.592Z
|
|
7
|
+
* @hash a8ebab8
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
'use strict';
|
|
@@ -5928,7 +5928,10 @@ function isInside(col, row, zone) {
|
|
|
5928
5928
|
* Check if a zone is inside another
|
|
5929
5929
|
*/
|
|
5930
5930
|
function isZoneInside(smallZone, biggerZone) {
|
|
5931
|
-
return
|
|
5931
|
+
return (smallZone.left >= biggerZone.left &&
|
|
5932
|
+
smallZone.right <= biggerZone.right &&
|
|
5933
|
+
smallZone.top >= biggerZone.top &&
|
|
5934
|
+
smallZone.bottom <= biggerZone.bottom);
|
|
5932
5935
|
}
|
|
5933
5936
|
function zoneToDimension(zone) {
|
|
5934
5937
|
return {
|
|
@@ -6489,7 +6492,7 @@ function getRangeString(range, forSheetId, getSheetName, options = { useBoundedR
|
|
|
6489
6492
|
let sheetName = "";
|
|
6490
6493
|
if (prefixSheet) {
|
|
6491
6494
|
if (range.invalidSheetName) {
|
|
6492
|
-
sheetName = range.invalidSheetName;
|
|
6495
|
+
sheetName = getCanonicalSymbolName(range.invalidSheetName);
|
|
6493
6496
|
}
|
|
6494
6497
|
else {
|
|
6495
6498
|
sheetName = getCanonicalSymbolName(getSheetName(range.sheetId));
|
|
@@ -23107,7 +23110,7 @@ let ScorecardChart$1 = class ScorecardChart extends AbstractChart {
|
|
|
23107
23110
|
return {
|
|
23108
23111
|
background: context.background,
|
|
23109
23112
|
type: "scorecard",
|
|
23110
|
-
keyValue: context.range
|
|
23113
|
+
keyValue: context.range?.[0]?.dataRange,
|
|
23111
23114
|
title: context.title || { text: "" },
|
|
23112
23115
|
baselineMode: DEFAULT_SCORECARD_BASELINE_MODE,
|
|
23113
23116
|
baselineColorUp: DEFAULT_SCORECARD_BASELINE_COLOR_UP,
|
|
@@ -27428,7 +27431,7 @@ class GaugeChart extends AbstractChart {
|
|
|
27428
27431
|
background: context.background,
|
|
27429
27432
|
title: context.title || { text: "" },
|
|
27430
27433
|
type: "gauge",
|
|
27431
|
-
dataRange: context.range
|
|
27434
|
+
dataRange: context.range?.[0]?.dataRange,
|
|
27432
27435
|
sectionRule: {
|
|
27433
27436
|
colors: {
|
|
27434
27437
|
lowerColor: DEFAULT_GAUGE_LOWER_COLOR,
|
|
@@ -32235,7 +32238,7 @@ class ContentEditableHelper {
|
|
|
32235
32238
|
else {
|
|
32236
32239
|
text += NEWLINE;
|
|
32237
32240
|
}
|
|
32238
|
-
emptyParagraph =
|
|
32241
|
+
emptyParagraph = isEmptyParagraph(current.value);
|
|
32239
32242
|
continue;
|
|
32240
32243
|
}
|
|
32241
32244
|
if (!current.value.hasChildNodes()) {
|
|
@@ -32256,6 +32259,21 @@ function compareContentToSpanElement(content, node) {
|
|
|
32256
32259
|
const sameContent = node.innerText === content.value;
|
|
32257
32260
|
return sameColor && sameClass && sameContent;
|
|
32258
32261
|
}
|
|
32262
|
+
const doc = new DOMParser();
|
|
32263
|
+
const brNode = doc.parseFromString("<br>", "text/html").body.firstChild;
|
|
32264
|
+
const spanBrNode = doc.parseFromString("<span><br></span>", "text/html").body.firstChild;
|
|
32265
|
+
function isEmptyParagraph(node) {
|
|
32266
|
+
if (node.childNodes.length > 1)
|
|
32267
|
+
return false;
|
|
32268
|
+
const node2 = node.firstChild?.cloneNode(true);
|
|
32269
|
+
if (!node2)
|
|
32270
|
+
return true;
|
|
32271
|
+
if (!(node2 instanceof Element))
|
|
32272
|
+
return false;
|
|
32273
|
+
node2.removeAttribute("class");
|
|
32274
|
+
node2.removeAttribute("style");
|
|
32275
|
+
return node2.isEqualNode(brNode) || node2.isEqualNode(spanBrNode) || false;
|
|
32276
|
+
}
|
|
32259
32277
|
|
|
32260
32278
|
// -----------------------------------------------------------------------------
|
|
32261
32279
|
// Formula Assistant component
|
|
@@ -32591,6 +32609,7 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
32591
32609
|
this.highlightStore.register(this);
|
|
32592
32610
|
this.onDispose(() => {
|
|
32593
32611
|
this.highlightStore.unRegister(this);
|
|
32612
|
+
this._cancelEdition();
|
|
32594
32613
|
});
|
|
32595
32614
|
}
|
|
32596
32615
|
handleEvent(event) {
|
|
@@ -41815,8 +41834,10 @@ const LEGACY_VERSION_MAPPING = {
|
|
|
41815
41834
|
17: "17.4",
|
|
41816
41835
|
16: "17.3",
|
|
41817
41836
|
15: "17.2",
|
|
41837
|
+
"14.5": "16.4.1",
|
|
41818
41838
|
14: "16.4",
|
|
41819
41839
|
13: "16.3",
|
|
41840
|
+
"12.5": "15.4.1",
|
|
41820
41841
|
12: "15.4",
|
|
41821
41842
|
// not accurate starting at this point
|
|
41822
41843
|
11: "0.10",
|
|
@@ -47979,6 +48000,9 @@ class GridRenderer extends SpreadsheetStore {
|
|
|
47979
48000
|
break;
|
|
47980
48001
|
}
|
|
47981
48002
|
}
|
|
48003
|
+
finalize() {
|
|
48004
|
+
this.zonesWithPreventedAnimationsInNextFrame = recomputeZones(this.zonesWithPreventedAnimationsInNextFrame);
|
|
48005
|
+
}
|
|
47982
48006
|
get renderingLayers() {
|
|
47983
48007
|
return ["Background", "Headers"];
|
|
47984
48008
|
}
|
|
@@ -76580,6 +76604,7 @@ topbarMenuRegistry
|
|
|
76580
76604
|
.add("file", {
|
|
76581
76605
|
name: _t("File"),
|
|
76582
76606
|
sequence: 10,
|
|
76607
|
+
isReadonlyAllowed: true,
|
|
76583
76608
|
})
|
|
76584
76609
|
.addChild("settings", ["file"], {
|
|
76585
76610
|
name: _t("Settings"),
|
|
@@ -76594,6 +76619,7 @@ topbarMenuRegistry
|
|
|
76594
76619
|
.add("edit", {
|
|
76595
76620
|
name: _t("Edit"),
|
|
76596
76621
|
sequence: 20,
|
|
76622
|
+
isReadonlyAllowed: true,
|
|
76597
76623
|
})
|
|
76598
76624
|
.addChild("undo", ["edit"], {
|
|
76599
76625
|
...undo,
|
|
@@ -76678,6 +76704,7 @@ topbarMenuRegistry
|
|
|
76678
76704
|
.add("view", {
|
|
76679
76705
|
name: _t("View"),
|
|
76680
76706
|
sequence: 30,
|
|
76707
|
+
isReadonlyAllowed: true,
|
|
76681
76708
|
})
|
|
76682
76709
|
.addChild("unfreeze_panes", ["view"], {
|
|
76683
76710
|
...unFreezePane,
|
|
@@ -76769,6 +76796,7 @@ topbarMenuRegistry
|
|
|
76769
76796
|
.add("insert", {
|
|
76770
76797
|
name: _t("Insert"),
|
|
76771
76798
|
sequence: 40,
|
|
76799
|
+
isReadonlyAllowed: true,
|
|
76772
76800
|
})
|
|
76773
76801
|
.addChild("insert_row", ["insert"], {
|
|
76774
76802
|
...insertRow,
|
|
@@ -76876,7 +76904,11 @@ topbarMenuRegistry
|
|
|
76876
76904
|
// ---------------------------------------------------------------------
|
|
76877
76905
|
// FORMAT MENU ITEMS
|
|
76878
76906
|
// ---------------------------------------------------------------------
|
|
76879
|
-
.add("format", {
|
|
76907
|
+
.add("format", {
|
|
76908
|
+
name: _t("Format"),
|
|
76909
|
+
sequence: 50,
|
|
76910
|
+
isReadonlyAllowed: true,
|
|
76911
|
+
})
|
|
76880
76912
|
.addChild("format_number", ["format"], {
|
|
76881
76913
|
...formatNumberMenuItemSpec,
|
|
76882
76914
|
name: _t("Number"),
|
|
@@ -76968,6 +77000,7 @@ topbarMenuRegistry
|
|
|
76968
77000
|
.add("data", {
|
|
76969
77001
|
name: _t("Data"),
|
|
76970
77002
|
sequence: 60,
|
|
77003
|
+
isReadonlyAllowed: true,
|
|
76971
77004
|
})
|
|
76972
77005
|
.addChild("sort_range", ["data"], {
|
|
76973
77006
|
...sortRange,
|
|
@@ -84905,6 +84938,6 @@ exports.tokenColors = tokenColors;
|
|
|
84905
84938
|
exports.tokenize = tokenize;
|
|
84906
84939
|
|
|
84907
84940
|
|
|
84908
|
-
__info__.version = "18.4.
|
|
84909
|
-
__info__.date = "2025-
|
|
84910
|
-
__info__.hash = "
|
|
84941
|
+
__info__.version = "18.4.17";
|
|
84942
|
+
__info__.date = "2025-11-12T14:15:30.592Z";
|
|
84943
|
+
__info__.hash = "a8ebab8";
|
package/dist/o-spreadsheet.d.ts
CHANGED
|
@@ -11696,6 +11696,7 @@ declare class GridRenderer extends SpreadsheetStore {
|
|
|
11696
11696
|
private animations;
|
|
11697
11697
|
constructor(get: Get);
|
|
11698
11698
|
handle(cmd: Command): void;
|
|
11699
|
+
finalize(): void;
|
|
11699
11700
|
get renderingLayers(): readonly ["Background", "Headers"];
|
|
11700
11701
|
drawLayer(renderingContext: GridRenderingContext, layer: LayerName, timeStamp: number | undefined): void;
|
|
11701
11702
|
private drawGlobalBackground;
|
|
@@ -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 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.4.17
|
|
6
|
+
* @date 2025-11-12T14:15:30.592Z
|
|
7
|
+
* @hash a8ebab8
|
|
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';
|
|
@@ -5926,7 +5926,10 @@ function isInside(col, row, zone) {
|
|
|
5926
5926
|
* Check if a zone is inside another
|
|
5927
5927
|
*/
|
|
5928
5928
|
function isZoneInside(smallZone, biggerZone) {
|
|
5929
|
-
return
|
|
5929
|
+
return (smallZone.left >= biggerZone.left &&
|
|
5930
|
+
smallZone.right <= biggerZone.right &&
|
|
5931
|
+
smallZone.top >= biggerZone.top &&
|
|
5932
|
+
smallZone.bottom <= biggerZone.bottom);
|
|
5930
5933
|
}
|
|
5931
5934
|
function zoneToDimension(zone) {
|
|
5932
5935
|
return {
|
|
@@ -6487,7 +6490,7 @@ function getRangeString(range, forSheetId, getSheetName, options = { useBoundedR
|
|
|
6487
6490
|
let sheetName = "";
|
|
6488
6491
|
if (prefixSheet) {
|
|
6489
6492
|
if (range.invalidSheetName) {
|
|
6490
|
-
sheetName = range.invalidSheetName;
|
|
6493
|
+
sheetName = getCanonicalSymbolName(range.invalidSheetName);
|
|
6491
6494
|
}
|
|
6492
6495
|
else {
|
|
6493
6496
|
sheetName = getCanonicalSymbolName(getSheetName(range.sheetId));
|
|
@@ -23105,7 +23108,7 @@ let ScorecardChart$1 = class ScorecardChart extends AbstractChart {
|
|
|
23105
23108
|
return {
|
|
23106
23109
|
background: context.background,
|
|
23107
23110
|
type: "scorecard",
|
|
23108
|
-
keyValue: context.range
|
|
23111
|
+
keyValue: context.range?.[0]?.dataRange,
|
|
23109
23112
|
title: context.title || { text: "" },
|
|
23110
23113
|
baselineMode: DEFAULT_SCORECARD_BASELINE_MODE,
|
|
23111
23114
|
baselineColorUp: DEFAULT_SCORECARD_BASELINE_COLOR_UP,
|
|
@@ -27426,7 +27429,7 @@ class GaugeChart extends AbstractChart {
|
|
|
27426
27429
|
background: context.background,
|
|
27427
27430
|
title: context.title || { text: "" },
|
|
27428
27431
|
type: "gauge",
|
|
27429
|
-
dataRange: context.range
|
|
27432
|
+
dataRange: context.range?.[0]?.dataRange,
|
|
27430
27433
|
sectionRule: {
|
|
27431
27434
|
colors: {
|
|
27432
27435
|
lowerColor: DEFAULT_GAUGE_LOWER_COLOR,
|
|
@@ -32233,7 +32236,7 @@ class ContentEditableHelper {
|
|
|
32233
32236
|
else {
|
|
32234
32237
|
text += NEWLINE;
|
|
32235
32238
|
}
|
|
32236
|
-
emptyParagraph =
|
|
32239
|
+
emptyParagraph = isEmptyParagraph(current.value);
|
|
32237
32240
|
continue;
|
|
32238
32241
|
}
|
|
32239
32242
|
if (!current.value.hasChildNodes()) {
|
|
@@ -32254,6 +32257,21 @@ function compareContentToSpanElement(content, node) {
|
|
|
32254
32257
|
const sameContent = node.innerText === content.value;
|
|
32255
32258
|
return sameColor && sameClass && sameContent;
|
|
32256
32259
|
}
|
|
32260
|
+
const doc = new DOMParser();
|
|
32261
|
+
const brNode = doc.parseFromString("<br>", "text/html").body.firstChild;
|
|
32262
|
+
const spanBrNode = doc.parseFromString("<span><br></span>", "text/html").body.firstChild;
|
|
32263
|
+
function isEmptyParagraph(node) {
|
|
32264
|
+
if (node.childNodes.length > 1)
|
|
32265
|
+
return false;
|
|
32266
|
+
const node2 = node.firstChild?.cloneNode(true);
|
|
32267
|
+
if (!node2)
|
|
32268
|
+
return true;
|
|
32269
|
+
if (!(node2 instanceof Element))
|
|
32270
|
+
return false;
|
|
32271
|
+
node2.removeAttribute("class");
|
|
32272
|
+
node2.removeAttribute("style");
|
|
32273
|
+
return node2.isEqualNode(brNode) || node2.isEqualNode(spanBrNode) || false;
|
|
32274
|
+
}
|
|
32257
32275
|
|
|
32258
32276
|
// -----------------------------------------------------------------------------
|
|
32259
32277
|
// Formula Assistant component
|
|
@@ -32589,6 +32607,7 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
32589
32607
|
this.highlightStore.register(this);
|
|
32590
32608
|
this.onDispose(() => {
|
|
32591
32609
|
this.highlightStore.unRegister(this);
|
|
32610
|
+
this._cancelEdition();
|
|
32592
32611
|
});
|
|
32593
32612
|
}
|
|
32594
32613
|
handleEvent(event) {
|
|
@@ -41813,8 +41832,10 @@ const LEGACY_VERSION_MAPPING = {
|
|
|
41813
41832
|
17: "17.4",
|
|
41814
41833
|
16: "17.3",
|
|
41815
41834
|
15: "17.2",
|
|
41835
|
+
"14.5": "16.4.1",
|
|
41816
41836
|
14: "16.4",
|
|
41817
41837
|
13: "16.3",
|
|
41838
|
+
"12.5": "15.4.1",
|
|
41818
41839
|
12: "15.4",
|
|
41819
41840
|
// not accurate starting at this point
|
|
41820
41841
|
11: "0.10",
|
|
@@ -47977,6 +47998,9 @@ class GridRenderer extends SpreadsheetStore {
|
|
|
47977
47998
|
break;
|
|
47978
47999
|
}
|
|
47979
48000
|
}
|
|
48001
|
+
finalize() {
|
|
48002
|
+
this.zonesWithPreventedAnimationsInNextFrame = recomputeZones(this.zonesWithPreventedAnimationsInNextFrame);
|
|
48003
|
+
}
|
|
47980
48004
|
get renderingLayers() {
|
|
47981
48005
|
return ["Background", "Headers"];
|
|
47982
48006
|
}
|
|
@@ -76578,6 +76602,7 @@ topbarMenuRegistry
|
|
|
76578
76602
|
.add("file", {
|
|
76579
76603
|
name: _t("File"),
|
|
76580
76604
|
sequence: 10,
|
|
76605
|
+
isReadonlyAllowed: true,
|
|
76581
76606
|
})
|
|
76582
76607
|
.addChild("settings", ["file"], {
|
|
76583
76608
|
name: _t("Settings"),
|
|
@@ -76592,6 +76617,7 @@ topbarMenuRegistry
|
|
|
76592
76617
|
.add("edit", {
|
|
76593
76618
|
name: _t("Edit"),
|
|
76594
76619
|
sequence: 20,
|
|
76620
|
+
isReadonlyAllowed: true,
|
|
76595
76621
|
})
|
|
76596
76622
|
.addChild("undo", ["edit"], {
|
|
76597
76623
|
...undo,
|
|
@@ -76676,6 +76702,7 @@ topbarMenuRegistry
|
|
|
76676
76702
|
.add("view", {
|
|
76677
76703
|
name: _t("View"),
|
|
76678
76704
|
sequence: 30,
|
|
76705
|
+
isReadonlyAllowed: true,
|
|
76679
76706
|
})
|
|
76680
76707
|
.addChild("unfreeze_panes", ["view"], {
|
|
76681
76708
|
...unFreezePane,
|
|
@@ -76767,6 +76794,7 @@ topbarMenuRegistry
|
|
|
76767
76794
|
.add("insert", {
|
|
76768
76795
|
name: _t("Insert"),
|
|
76769
76796
|
sequence: 40,
|
|
76797
|
+
isReadonlyAllowed: true,
|
|
76770
76798
|
})
|
|
76771
76799
|
.addChild("insert_row", ["insert"], {
|
|
76772
76800
|
...insertRow,
|
|
@@ -76874,7 +76902,11 @@ topbarMenuRegistry
|
|
|
76874
76902
|
// ---------------------------------------------------------------------
|
|
76875
76903
|
// FORMAT MENU ITEMS
|
|
76876
76904
|
// ---------------------------------------------------------------------
|
|
76877
|
-
.add("format", {
|
|
76905
|
+
.add("format", {
|
|
76906
|
+
name: _t("Format"),
|
|
76907
|
+
sequence: 50,
|
|
76908
|
+
isReadonlyAllowed: true,
|
|
76909
|
+
})
|
|
76878
76910
|
.addChild("format_number", ["format"], {
|
|
76879
76911
|
...formatNumberMenuItemSpec,
|
|
76880
76912
|
name: _t("Number"),
|
|
@@ -76966,6 +76998,7 @@ topbarMenuRegistry
|
|
|
76966
76998
|
.add("data", {
|
|
76967
76999
|
name: _t("Data"),
|
|
76968
77000
|
sequence: 60,
|
|
77001
|
+
isReadonlyAllowed: true,
|
|
76969
77002
|
})
|
|
76970
77003
|
.addChild("sort_range", ["data"], {
|
|
76971
77004
|
...sortRange,
|
|
@@ -84855,6 +84888,6 @@ const chartHelpers = { ...CHART_HELPERS, ...CHART_RUNTIME_HELPERS };
|
|
|
84855
84888
|
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 };
|
|
84856
84889
|
|
|
84857
84890
|
|
|
84858
|
-
__info__.version = "18.4.
|
|
84859
|
-
__info__.date = "2025-
|
|
84860
|
-
__info__.hash = "
|
|
84891
|
+
__info__.version = "18.4.17";
|
|
84892
|
+
__info__.date = "2025-11-12T14:15:30.592Z";
|
|
84893
|
+
__info__.hash = "a8ebab8";
|
|
@@ -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 2025-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.4.17
|
|
6
|
+
* @date 2025-11-12T14:15:30.592Z
|
|
7
|
+
* @hash a8ebab8
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -5927,7 +5927,10 @@
|
|
|
5927
5927
|
* Check if a zone is inside another
|
|
5928
5928
|
*/
|
|
5929
5929
|
function isZoneInside(smallZone, biggerZone) {
|
|
5930
|
-
return
|
|
5930
|
+
return (smallZone.left >= biggerZone.left &&
|
|
5931
|
+
smallZone.right <= biggerZone.right &&
|
|
5932
|
+
smallZone.top >= biggerZone.top &&
|
|
5933
|
+
smallZone.bottom <= biggerZone.bottom);
|
|
5931
5934
|
}
|
|
5932
5935
|
function zoneToDimension(zone) {
|
|
5933
5936
|
return {
|
|
@@ -6488,7 +6491,7 @@
|
|
|
6488
6491
|
let sheetName = "";
|
|
6489
6492
|
if (prefixSheet) {
|
|
6490
6493
|
if (range.invalidSheetName) {
|
|
6491
|
-
sheetName = range.invalidSheetName;
|
|
6494
|
+
sheetName = getCanonicalSymbolName(range.invalidSheetName);
|
|
6492
6495
|
}
|
|
6493
6496
|
else {
|
|
6494
6497
|
sheetName = getCanonicalSymbolName(getSheetName(range.sheetId));
|
|
@@ -23106,7 +23109,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
23106
23109
|
return {
|
|
23107
23110
|
background: context.background,
|
|
23108
23111
|
type: "scorecard",
|
|
23109
|
-
keyValue: context.range
|
|
23112
|
+
keyValue: context.range?.[0]?.dataRange,
|
|
23110
23113
|
title: context.title || { text: "" },
|
|
23111
23114
|
baselineMode: DEFAULT_SCORECARD_BASELINE_MODE,
|
|
23112
23115
|
baselineColorUp: DEFAULT_SCORECARD_BASELINE_COLOR_UP,
|
|
@@ -27427,7 +27430,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
27427
27430
|
background: context.background,
|
|
27428
27431
|
title: context.title || { text: "" },
|
|
27429
27432
|
type: "gauge",
|
|
27430
|
-
dataRange: context.range
|
|
27433
|
+
dataRange: context.range?.[0]?.dataRange,
|
|
27431
27434
|
sectionRule: {
|
|
27432
27435
|
colors: {
|
|
27433
27436
|
lowerColor: DEFAULT_GAUGE_LOWER_COLOR,
|
|
@@ -32234,7 +32237,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32234
32237
|
else {
|
|
32235
32238
|
text += NEWLINE;
|
|
32236
32239
|
}
|
|
32237
|
-
emptyParagraph =
|
|
32240
|
+
emptyParagraph = isEmptyParagraph(current.value);
|
|
32238
32241
|
continue;
|
|
32239
32242
|
}
|
|
32240
32243
|
if (!current.value.hasChildNodes()) {
|
|
@@ -32255,6 +32258,21 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32255
32258
|
const sameContent = node.innerText === content.value;
|
|
32256
32259
|
return sameColor && sameClass && sameContent;
|
|
32257
32260
|
}
|
|
32261
|
+
const doc = new DOMParser();
|
|
32262
|
+
const brNode = doc.parseFromString("<br>", "text/html").body.firstChild;
|
|
32263
|
+
const spanBrNode = doc.parseFromString("<span><br></span>", "text/html").body.firstChild;
|
|
32264
|
+
function isEmptyParagraph(node) {
|
|
32265
|
+
if (node.childNodes.length > 1)
|
|
32266
|
+
return false;
|
|
32267
|
+
const node2 = node.firstChild?.cloneNode(true);
|
|
32268
|
+
if (!node2)
|
|
32269
|
+
return true;
|
|
32270
|
+
if (!(node2 instanceof Element))
|
|
32271
|
+
return false;
|
|
32272
|
+
node2.removeAttribute("class");
|
|
32273
|
+
node2.removeAttribute("style");
|
|
32274
|
+
return node2.isEqualNode(brNode) || node2.isEqualNode(spanBrNode) || false;
|
|
32275
|
+
}
|
|
32258
32276
|
|
|
32259
32277
|
// -----------------------------------------------------------------------------
|
|
32260
32278
|
// Formula Assistant component
|
|
@@ -32590,6 +32608,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32590
32608
|
this.highlightStore.register(this);
|
|
32591
32609
|
this.onDispose(() => {
|
|
32592
32610
|
this.highlightStore.unRegister(this);
|
|
32611
|
+
this._cancelEdition();
|
|
32593
32612
|
});
|
|
32594
32613
|
}
|
|
32595
32614
|
handleEvent(event) {
|
|
@@ -41814,8 +41833,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
41814
41833
|
17: "17.4",
|
|
41815
41834
|
16: "17.3",
|
|
41816
41835
|
15: "17.2",
|
|
41836
|
+
"14.5": "16.4.1",
|
|
41817
41837
|
14: "16.4",
|
|
41818
41838
|
13: "16.3",
|
|
41839
|
+
"12.5": "15.4.1",
|
|
41819
41840
|
12: "15.4",
|
|
41820
41841
|
// not accurate starting at this point
|
|
41821
41842
|
11: "0.10",
|
|
@@ -47978,6 +47999,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
47978
47999
|
break;
|
|
47979
48000
|
}
|
|
47980
48001
|
}
|
|
48002
|
+
finalize() {
|
|
48003
|
+
this.zonesWithPreventedAnimationsInNextFrame = recomputeZones(this.zonesWithPreventedAnimationsInNextFrame);
|
|
48004
|
+
}
|
|
47981
48005
|
get renderingLayers() {
|
|
47982
48006
|
return ["Background", "Headers"];
|
|
47983
48007
|
}
|
|
@@ -76579,6 +76603,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76579
76603
|
.add("file", {
|
|
76580
76604
|
name: _t("File"),
|
|
76581
76605
|
sequence: 10,
|
|
76606
|
+
isReadonlyAllowed: true,
|
|
76582
76607
|
})
|
|
76583
76608
|
.addChild("settings", ["file"], {
|
|
76584
76609
|
name: _t("Settings"),
|
|
@@ -76593,6 +76618,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76593
76618
|
.add("edit", {
|
|
76594
76619
|
name: _t("Edit"),
|
|
76595
76620
|
sequence: 20,
|
|
76621
|
+
isReadonlyAllowed: true,
|
|
76596
76622
|
})
|
|
76597
76623
|
.addChild("undo", ["edit"], {
|
|
76598
76624
|
...undo,
|
|
@@ -76677,6 +76703,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76677
76703
|
.add("view", {
|
|
76678
76704
|
name: _t("View"),
|
|
76679
76705
|
sequence: 30,
|
|
76706
|
+
isReadonlyAllowed: true,
|
|
76680
76707
|
})
|
|
76681
76708
|
.addChild("unfreeze_panes", ["view"], {
|
|
76682
76709
|
...unFreezePane,
|
|
@@ -76768,6 +76795,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76768
76795
|
.add("insert", {
|
|
76769
76796
|
name: _t("Insert"),
|
|
76770
76797
|
sequence: 40,
|
|
76798
|
+
isReadonlyAllowed: true,
|
|
76771
76799
|
})
|
|
76772
76800
|
.addChild("insert_row", ["insert"], {
|
|
76773
76801
|
...insertRow,
|
|
@@ -76875,7 +76903,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76875
76903
|
// ---------------------------------------------------------------------
|
|
76876
76904
|
// FORMAT MENU ITEMS
|
|
76877
76905
|
// ---------------------------------------------------------------------
|
|
76878
|
-
.add("format", {
|
|
76906
|
+
.add("format", {
|
|
76907
|
+
name: _t("Format"),
|
|
76908
|
+
sequence: 50,
|
|
76909
|
+
isReadonlyAllowed: true,
|
|
76910
|
+
})
|
|
76879
76911
|
.addChild("format_number", ["format"], {
|
|
76880
76912
|
...formatNumberMenuItemSpec,
|
|
76881
76913
|
name: _t("Number"),
|
|
@@ -76967,6 +76999,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76967
76999
|
.add("data", {
|
|
76968
77000
|
name: _t("Data"),
|
|
76969
77001
|
sequence: 60,
|
|
77002
|
+
isReadonlyAllowed: true,
|
|
76970
77003
|
})
|
|
76971
77004
|
.addChild("sort_range", ["data"], {
|
|
76972
77005
|
...sortRange,
|
|
@@ -84904,9 +84937,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
84904
84937
|
exports.tokenize = tokenize;
|
|
84905
84938
|
|
|
84906
84939
|
|
|
84907
|
-
__info__.version = "18.4.
|
|
84908
|
-
__info__.date = "2025-
|
|
84909
|
-
__info__.hash = "
|
|
84940
|
+
__info__.version = "18.4.17";
|
|
84941
|
+
__info__.date = "2025-11-12T14:15:30.592Z";
|
|
84942
|
+
__info__.hash = "a8ebab8";
|
|
84910
84943
|
|
|
84911
84944
|
|
|
84912
84945
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|