@odoo/o-spreadsheet 19.0.36 → 19.0.38
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 +42 -23
- package/dist/o_spreadsheet.css +3 -3
- package/dist/o_spreadsheet.esm.js +42 -23
- package/dist/o_spreadsheet.iife.js +42 -23
- package/dist/o_spreadsheet.iife.min.js +10 -10
- package/dist/o_spreadsheet.xml +5 -4
- package/package.json +1 -1
|
@@ -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 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.38
|
|
6
|
+
* @date 2026-06-17T08:50:59.627Z
|
|
7
|
+
* @hash f469250
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
@@ -3473,6 +3473,7 @@ function emptyDataErrorMessage(argName) {
|
|
|
3473
3473
|
//#endregion
|
|
3474
3474
|
//#region src/helpers/format/format_tokenizer.ts
|
|
3475
3475
|
function tokenizeFormat(str) {
|
|
3476
|
+
str = str.replace(/\s/g, " ");
|
|
3476
3477
|
const chars = new TokenizingChars(str);
|
|
3477
3478
|
const result = [];
|
|
3478
3479
|
let currentFormatPart = [];
|
|
@@ -39290,11 +39291,10 @@ const INSERT_TABLE = (env) => {
|
|
|
39290
39291
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
39291
39292
|
};
|
|
39292
39293
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
39293
|
-
const
|
|
39294
|
-
const table = env.model.getters.getTable(position);
|
|
39294
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
39295
39295
|
if (!table) return;
|
|
39296
39296
|
env.model.dispatch("REMOVE_TABLE", {
|
|
39297
|
-
sheetId:
|
|
39297
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
39298
39298
|
target: [table.range.zone]
|
|
39299
39299
|
});
|
|
39300
39300
|
};
|
|
@@ -43585,8 +43585,12 @@ var CellComposerStore = class extends AbstractComposerStore {
|
|
|
43585
43585
|
}
|
|
43586
43586
|
stopEdition(direction) {
|
|
43587
43587
|
if (this.canStopEdition()) {
|
|
43588
|
+
const { col, row } = this.currentEditedCell;
|
|
43588
43589
|
this._stopEdition();
|
|
43589
|
-
if (direction)
|
|
43590
|
+
if (direction) {
|
|
43591
|
+
this.model.selection.selectCell(col, row);
|
|
43592
|
+
this.model.selection.moveAnchorCell(direction, 1);
|
|
43593
|
+
}
|
|
43590
43594
|
return;
|
|
43591
43595
|
}
|
|
43592
43596
|
const editedCell = this.currentEditedCell;
|
|
@@ -51416,9 +51420,9 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51416
51420
|
allSheetsMatches = [];
|
|
51417
51421
|
activeSheetMatches = [];
|
|
51418
51422
|
specificRangeMatches = [];
|
|
51423
|
+
selectedMatchPosition = null;
|
|
51419
51424
|
currentSearchRegex = null;
|
|
51420
51425
|
initialShowFormulaState;
|
|
51421
|
-
preserveSelectedMatchIndex = false;
|
|
51422
51426
|
irreplaceableMatchCount = 0;
|
|
51423
51427
|
isSearchDirty = false;
|
|
51424
51428
|
shouldFinalizeUpdateSelection = false;
|
|
@@ -51540,7 +51544,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51540
51544
|
*/
|
|
51541
51545
|
_updateSearch(toSearch, searchOptions) {
|
|
51542
51546
|
this.searchOptions = searchOptions;
|
|
51543
|
-
if (toSearch !== this.toSearch)
|
|
51547
|
+
if (toSearch !== this.toSearch) {
|
|
51548
|
+
this.selectedMatchIndex = null;
|
|
51549
|
+
this.selectedMatchPosition = null;
|
|
51550
|
+
}
|
|
51544
51551
|
this.toSearch = toSearch;
|
|
51545
51552
|
this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
|
|
51546
51553
|
this.refreshSearch({
|
|
@@ -51552,8 +51559,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51552
51559
|
* refresh the matches according to the current search options
|
|
51553
51560
|
*/
|
|
51554
51561
|
refreshSearch(options) {
|
|
51555
|
-
if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
|
|
51556
51562
|
this.findMatches();
|
|
51563
|
+
if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
|
|
51564
|
+
this.selectedMatchIndex = null;
|
|
51565
|
+
this.selectedMatchPosition = null;
|
|
51566
|
+
} else {
|
|
51567
|
+
const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
|
|
51568
|
+
if (index !== -1) this.selectedMatchIndex = index;
|
|
51569
|
+
}
|
|
51557
51570
|
this.selectNextCell(0, options);
|
|
51558
51571
|
}
|
|
51559
51572
|
getSheetsInSearchOrder() {
|
|
@@ -51621,6 +51634,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51621
51634
|
const matches = this.searchMatches;
|
|
51622
51635
|
if (!matches.length) {
|
|
51623
51636
|
this.selectedMatchIndex = null;
|
|
51637
|
+
this.selectedMatchPosition = null;
|
|
51624
51638
|
return;
|
|
51625
51639
|
}
|
|
51626
51640
|
let nextIndex;
|
|
@@ -51634,14 +51648,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51634
51648
|
} else nextIndex = this.selectedMatchIndex + indexChange;
|
|
51635
51649
|
nextIndex = (nextIndex + matches.length) % matches.length;
|
|
51636
51650
|
this.selectedMatchIndex = nextIndex;
|
|
51651
|
+
this.selectedMatchPosition = matches[this.selectedMatchIndex];
|
|
51637
51652
|
const selectedMatch = matches[nextIndex];
|
|
51638
51653
|
if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
|
|
51639
|
-
this.preserveSelectedMatchIndex = true;
|
|
51640
51654
|
this.model.dispatch("ACTIVATE_SHEET", {
|
|
51641
51655
|
sheetIdFrom: this.getters.getActiveSheetId(),
|
|
51642
51656
|
sheetIdTo: selectedMatch.sheetId
|
|
51643
51657
|
});
|
|
51644
|
-
this.preserveSelectedMatchIndex = false;
|
|
51645
51658
|
this.isSearchDirty = false;
|
|
51646
51659
|
}
|
|
51647
51660
|
this.model.selection.getBackToDefault();
|
|
@@ -51652,7 +51665,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51652
51665
|
*/
|
|
51653
51666
|
replace() {
|
|
51654
51667
|
if (this.selectedMatchIndex === null) return;
|
|
51655
|
-
this.preserveSelectedMatchIndex = true;
|
|
51656
51668
|
this.shouldFinalizeUpdateSelection = true;
|
|
51657
51669
|
this.model.dispatch("REPLACE_SEARCH", {
|
|
51658
51670
|
searchString: this.toSearch,
|
|
@@ -51660,7 +51672,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51660
51672
|
matches: [this.searchMatches[this.selectedMatchIndex]],
|
|
51661
51673
|
searchOptions: this.searchOptions
|
|
51662
51674
|
});
|
|
51663
|
-
this.preserveSelectedMatchIndex = false;
|
|
51664
51675
|
}
|
|
51665
51676
|
/**
|
|
51666
51677
|
* Apply the replace function to all the matches one time.
|
|
@@ -63096,7 +63107,7 @@ iconsOnCellRegistry.add("pivot_collapse", (getters, position) => {
|
|
|
63096
63107
|
const definition = getters.getPivotCoreDefinition(pivotId);
|
|
63097
63108
|
const isDashboard = getters.isDashboard();
|
|
63098
63109
|
const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
|
|
63099
|
-
const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
|
|
63110
|
+
const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
|
|
63100
63111
|
const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
|
|
63101
63112
|
const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
|
|
63102
63113
|
return {
|
|
@@ -64048,9 +64059,11 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
64048
64059
|
this.refreshPivot(cmd.id);
|
|
64049
64060
|
break;
|
|
64050
64061
|
case "ADD_PIVOT":
|
|
64062
|
+
this.unusedPivots?.push(cmd.pivotId);
|
|
64051
64063
|
this.setupPivot(cmd.pivotId);
|
|
64052
64064
|
break;
|
|
64053
64065
|
case "DUPLICATE_PIVOT":
|
|
64066
|
+
this.unusedPivots?.push(cmd.newPivotId);
|
|
64054
64067
|
this.setupPivot(cmd.newPivotId);
|
|
64055
64068
|
break;
|
|
64056
64069
|
case "UPDATE_PIVOT":
|
|
@@ -64250,8 +64263,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
64250
64263
|
}
|
|
64251
64264
|
}
|
|
64252
64265
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
64253
|
-
const pivot = this.getters.
|
|
64254
|
-
for (const measure of pivot.
|
|
64266
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
64267
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
64255
64268
|
const { sheetId } = measure.computedBy;
|
|
64256
64269
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
64257
64270
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -67459,7 +67472,8 @@ const invalidateTableStyleCommandsSet = new Set([
|
|
|
67459
67472
|
"REMOVE_TABLE",
|
|
67460
67473
|
"RESIZE_TABLE",
|
|
67461
67474
|
"CREATE_TABLE_STYLE",
|
|
67462
|
-
"REMOVE_TABLE_STYLE"
|
|
67475
|
+
"REMOVE_TABLE_STYLE",
|
|
67476
|
+
"DELETE_CONTENT"
|
|
67463
67477
|
]);
|
|
67464
67478
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
67465
67479
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -76849,6 +76863,11 @@ function lineAttributes(params) {
|
|
|
76849
76863
|
`;
|
|
76850
76864
|
}
|
|
76851
76865
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
76866
|
+
const textProperties = [
|
|
76867
|
+
["b", style.bold ? "1" : "0"],
|
|
76868
|
+
["i", style.italic ? "1" : "0"],
|
|
76869
|
+
["sz", fontsize * 100]
|
|
76870
|
+
];
|
|
76852
76871
|
return escapeXml`
|
|
76853
76872
|
<c:tx>
|
|
76854
76873
|
<c:rich>
|
|
@@ -76856,13 +76875,13 @@ function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
|
76856
76875
|
<a:lstStyle />
|
|
76857
76876
|
<a:p>
|
|
76858
76877
|
<a:pPr lvl="0">
|
|
76859
|
-
<a:defRPr
|
|
76878
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
76860
76879
|
${solidFill(fontColor)}
|
|
76861
76880
|
<a:latin typeface="+mn-lt"/>
|
|
76862
76881
|
</a:defRPr>
|
|
76863
76882
|
</a:pPr>
|
|
76864
76883
|
<a:r> <!-- Runs -->
|
|
76865
|
-
<a:rPr
|
|
76884
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
76866
76885
|
<a:t>${text}</a:t>
|
|
76867
76886
|
</a:r>
|
|
76868
76887
|
</a:p>
|
|
@@ -79559,6 +79578,6 @@ exports.stores = stores;
|
|
|
79559
79578
|
exports.tokenColors = tokenColors;
|
|
79560
79579
|
exports.tokenize = tokenize;
|
|
79561
79580
|
|
|
79562
|
-
__info__.version = "19.0.
|
|
79563
|
-
__info__.date = "2026-
|
|
79564
|
-
__info__.hash = "
|
|
79581
|
+
__info__.version = "19.0.38";
|
|
79582
|
+
__info__.date = "2026-06-17T08:50:59.627Z";
|
|
79583
|
+
__info__.hash = "f469250";
|
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 19.0.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.38
|
|
6
|
+
* @date 2026-06-17T08:51:01.002Z
|
|
7
|
+
* @hash f469250
|
|
8
8
|
*/
|
|
9
9
|
/* Originates from src/components/top_bar/top_bar.scss */
|
|
10
10
|
@media (max-width: 1200px) {
|
|
@@ -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 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.38
|
|
6
|
+
* @date 2026-06-17T08:50:59.627Z
|
|
7
|
+
* @hash f469250
|
|
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";
|
|
@@ -3472,6 +3472,7 @@ function emptyDataErrorMessage(argName) {
|
|
|
3472
3472
|
//#endregion
|
|
3473
3473
|
//#region src/helpers/format/format_tokenizer.ts
|
|
3474
3474
|
function tokenizeFormat(str) {
|
|
3475
|
+
str = str.replace(/\s/g, " ");
|
|
3475
3476
|
const chars = new TokenizingChars(str);
|
|
3476
3477
|
const result = [];
|
|
3477
3478
|
let currentFormatPart = [];
|
|
@@ -39289,11 +39290,10 @@ const INSERT_TABLE = (env) => {
|
|
|
39289
39290
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
39290
39291
|
};
|
|
39291
39292
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
39292
|
-
const
|
|
39293
|
-
const table = env.model.getters.getTable(position);
|
|
39293
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
39294
39294
|
if (!table) return;
|
|
39295
39295
|
env.model.dispatch("REMOVE_TABLE", {
|
|
39296
|
-
sheetId:
|
|
39296
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
39297
39297
|
target: [table.range.zone]
|
|
39298
39298
|
});
|
|
39299
39299
|
};
|
|
@@ -43584,8 +43584,12 @@ var CellComposerStore = class extends AbstractComposerStore {
|
|
|
43584
43584
|
}
|
|
43585
43585
|
stopEdition(direction) {
|
|
43586
43586
|
if (this.canStopEdition()) {
|
|
43587
|
+
const { col, row } = this.currentEditedCell;
|
|
43587
43588
|
this._stopEdition();
|
|
43588
|
-
if (direction)
|
|
43589
|
+
if (direction) {
|
|
43590
|
+
this.model.selection.selectCell(col, row);
|
|
43591
|
+
this.model.selection.moveAnchorCell(direction, 1);
|
|
43592
|
+
}
|
|
43589
43593
|
return;
|
|
43590
43594
|
}
|
|
43591
43595
|
const editedCell = this.currentEditedCell;
|
|
@@ -51415,9 +51419,9 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51415
51419
|
allSheetsMatches = [];
|
|
51416
51420
|
activeSheetMatches = [];
|
|
51417
51421
|
specificRangeMatches = [];
|
|
51422
|
+
selectedMatchPosition = null;
|
|
51418
51423
|
currentSearchRegex = null;
|
|
51419
51424
|
initialShowFormulaState;
|
|
51420
|
-
preserveSelectedMatchIndex = false;
|
|
51421
51425
|
irreplaceableMatchCount = 0;
|
|
51422
51426
|
isSearchDirty = false;
|
|
51423
51427
|
shouldFinalizeUpdateSelection = false;
|
|
@@ -51539,7 +51543,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51539
51543
|
*/
|
|
51540
51544
|
_updateSearch(toSearch, searchOptions) {
|
|
51541
51545
|
this.searchOptions = searchOptions;
|
|
51542
|
-
if (toSearch !== this.toSearch)
|
|
51546
|
+
if (toSearch !== this.toSearch) {
|
|
51547
|
+
this.selectedMatchIndex = null;
|
|
51548
|
+
this.selectedMatchPosition = null;
|
|
51549
|
+
}
|
|
51543
51550
|
this.toSearch = toSearch;
|
|
51544
51551
|
this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
|
|
51545
51552
|
this.refreshSearch({
|
|
@@ -51551,8 +51558,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51551
51558
|
* refresh the matches according to the current search options
|
|
51552
51559
|
*/
|
|
51553
51560
|
refreshSearch(options) {
|
|
51554
|
-
if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
|
|
51555
51561
|
this.findMatches();
|
|
51562
|
+
if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
|
|
51563
|
+
this.selectedMatchIndex = null;
|
|
51564
|
+
this.selectedMatchPosition = null;
|
|
51565
|
+
} else {
|
|
51566
|
+
const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
|
|
51567
|
+
if (index !== -1) this.selectedMatchIndex = index;
|
|
51568
|
+
}
|
|
51556
51569
|
this.selectNextCell(0, options);
|
|
51557
51570
|
}
|
|
51558
51571
|
getSheetsInSearchOrder() {
|
|
@@ -51620,6 +51633,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51620
51633
|
const matches = this.searchMatches;
|
|
51621
51634
|
if (!matches.length) {
|
|
51622
51635
|
this.selectedMatchIndex = null;
|
|
51636
|
+
this.selectedMatchPosition = null;
|
|
51623
51637
|
return;
|
|
51624
51638
|
}
|
|
51625
51639
|
let nextIndex;
|
|
@@ -51633,14 +51647,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51633
51647
|
} else nextIndex = this.selectedMatchIndex + indexChange;
|
|
51634
51648
|
nextIndex = (nextIndex + matches.length) % matches.length;
|
|
51635
51649
|
this.selectedMatchIndex = nextIndex;
|
|
51650
|
+
this.selectedMatchPosition = matches[this.selectedMatchIndex];
|
|
51636
51651
|
const selectedMatch = matches[nextIndex];
|
|
51637
51652
|
if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
|
|
51638
|
-
this.preserveSelectedMatchIndex = true;
|
|
51639
51653
|
this.model.dispatch("ACTIVATE_SHEET", {
|
|
51640
51654
|
sheetIdFrom: this.getters.getActiveSheetId(),
|
|
51641
51655
|
sheetIdTo: selectedMatch.sheetId
|
|
51642
51656
|
});
|
|
51643
|
-
this.preserveSelectedMatchIndex = false;
|
|
51644
51657
|
this.isSearchDirty = false;
|
|
51645
51658
|
}
|
|
51646
51659
|
this.model.selection.getBackToDefault();
|
|
@@ -51651,7 +51664,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51651
51664
|
*/
|
|
51652
51665
|
replace() {
|
|
51653
51666
|
if (this.selectedMatchIndex === null) return;
|
|
51654
|
-
this.preserveSelectedMatchIndex = true;
|
|
51655
51667
|
this.shouldFinalizeUpdateSelection = true;
|
|
51656
51668
|
this.model.dispatch("REPLACE_SEARCH", {
|
|
51657
51669
|
searchString: this.toSearch,
|
|
@@ -51659,7 +51671,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51659
51671
|
matches: [this.searchMatches[this.selectedMatchIndex]],
|
|
51660
51672
|
searchOptions: this.searchOptions
|
|
51661
51673
|
});
|
|
51662
|
-
this.preserveSelectedMatchIndex = false;
|
|
51663
51674
|
}
|
|
51664
51675
|
/**
|
|
51665
51676
|
* Apply the replace function to all the matches one time.
|
|
@@ -62911,7 +62922,7 @@ iconsOnCellRegistry.add("pivot_collapse", (getters, position) => {
|
|
|
62911
62922
|
const definition = getters.getPivotCoreDefinition(pivotId);
|
|
62912
62923
|
const isDashboard = getters.isDashboard();
|
|
62913
62924
|
const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
|
|
62914
|
-
const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
|
|
62925
|
+
const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
|
|
62915
62926
|
const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
|
|
62916
62927
|
const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
|
|
62917
62928
|
return {
|
|
@@ -63863,9 +63874,11 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
63863
63874
|
this.refreshPivot(cmd.id);
|
|
63864
63875
|
break;
|
|
63865
63876
|
case "ADD_PIVOT":
|
|
63877
|
+
this.unusedPivots?.push(cmd.pivotId);
|
|
63866
63878
|
this.setupPivot(cmd.pivotId);
|
|
63867
63879
|
break;
|
|
63868
63880
|
case "DUPLICATE_PIVOT":
|
|
63881
|
+
this.unusedPivots?.push(cmd.newPivotId);
|
|
63869
63882
|
this.setupPivot(cmd.newPivotId);
|
|
63870
63883
|
break;
|
|
63871
63884
|
case "UPDATE_PIVOT":
|
|
@@ -64065,8 +64078,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
|
|
|
64065
64078
|
}
|
|
64066
64079
|
}
|
|
64067
64080
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
64068
|
-
const pivot = this.getters.
|
|
64069
|
-
for (const measure of pivot.
|
|
64081
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
64082
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
64070
64083
|
const { sheetId } = measure.computedBy;
|
|
64071
64084
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
64072
64085
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -67274,7 +67287,8 @@ const invalidateTableStyleCommandsSet = new Set([
|
|
|
67274
67287
|
"REMOVE_TABLE",
|
|
67275
67288
|
"RESIZE_TABLE",
|
|
67276
67289
|
"CREATE_TABLE_STYLE",
|
|
67277
|
-
"REMOVE_TABLE_STYLE"
|
|
67290
|
+
"REMOVE_TABLE_STYLE",
|
|
67291
|
+
"DELETE_CONTENT"
|
|
67278
67292
|
]);
|
|
67279
67293
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
67280
67294
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -76664,6 +76678,11 @@ function lineAttributes(params) {
|
|
|
76664
76678
|
`;
|
|
76665
76679
|
}
|
|
76666
76680
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
76681
|
+
const textProperties = [
|
|
76682
|
+
["b", style.bold ? "1" : "0"],
|
|
76683
|
+
["i", style.italic ? "1" : "0"],
|
|
76684
|
+
["sz", fontsize * 100]
|
|
76685
|
+
];
|
|
76667
76686
|
return escapeXml`
|
|
76668
76687
|
<c:tx>
|
|
76669
76688
|
<c:rich>
|
|
@@ -76671,13 +76690,13 @@ function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
|
76671
76690
|
<a:lstStyle />
|
|
76672
76691
|
<a:p>
|
|
76673
76692
|
<a:pPr lvl="0">
|
|
76674
|
-
<a:defRPr
|
|
76693
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
76675
76694
|
${solidFill(fontColor)}
|
|
76676
76695
|
<a:latin typeface="+mn-lt"/>
|
|
76677
76696
|
</a:defRPr>
|
|
76678
76697
|
</a:pPr>
|
|
76679
76698
|
<a:r> <!-- Runs -->
|
|
76680
|
-
<a:rPr
|
|
76699
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
76681
76700
|
<a:t>${text}</a:t>
|
|
76682
76701
|
</a:r>
|
|
76683
76702
|
</a:p>
|
|
@@ -79323,6 +79342,6 @@ const chartHelpers = {
|
|
|
79323
79342
|
//#endregion
|
|
79324
79343
|
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 };
|
|
79325
79344
|
|
|
79326
|
-
__info__.version = "19.0.
|
|
79327
|
-
__info__.date = "2026-
|
|
79328
|
-
__info__.hash = "
|
|
79345
|
+
__info__.version = "19.0.38";
|
|
79346
|
+
__info__.date = "2026-06-17T08:50:59.627Z";
|
|
79347
|
+
__info__.hash = "f469250";
|
|
@@ -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 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.38
|
|
6
|
+
* @date 2026-06-17T08:50:59.627Z
|
|
7
|
+
* @hash f469250
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -3474,6 +3474,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3474
3474
|
//#endregion
|
|
3475
3475
|
//#region src/helpers/format/format_tokenizer.ts
|
|
3476
3476
|
function tokenizeFormat(str) {
|
|
3477
|
+
str = str.replace(/\s/g, " ");
|
|
3477
3478
|
const chars = new TokenizingChars(str);
|
|
3478
3479
|
const result = [];
|
|
3479
3480
|
let currentFormatPart = [];
|
|
@@ -39291,11 +39292,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
39291
39292
|
if (interactiveCreateTable(env, env.model.getters.getActiveSheetId()).isSuccessful) env.openSidePanel("TableSidePanel", {});
|
|
39292
39293
|
};
|
|
39293
39294
|
const DELETE_SELECTED_TABLE = (env) => {
|
|
39294
|
-
const
|
|
39295
|
-
const table = env.model.getters.getTable(position);
|
|
39295
|
+
const table = env.model.getters.getFirstTableInSelection();
|
|
39296
39296
|
if (!table) return;
|
|
39297
39297
|
env.model.dispatch("REMOVE_TABLE", {
|
|
39298
|
-
sheetId:
|
|
39298
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
39299
39299
|
target: [table.range.zone]
|
|
39300
39300
|
});
|
|
39301
39301
|
};
|
|
@@ -43586,8 +43586,12 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43586
43586
|
}
|
|
43587
43587
|
stopEdition(direction) {
|
|
43588
43588
|
if (this.canStopEdition()) {
|
|
43589
|
+
const { col, row } = this.currentEditedCell;
|
|
43589
43590
|
this._stopEdition();
|
|
43590
|
-
if (direction)
|
|
43591
|
+
if (direction) {
|
|
43592
|
+
this.model.selection.selectCell(col, row);
|
|
43593
|
+
this.model.selection.moveAnchorCell(direction, 1);
|
|
43594
|
+
}
|
|
43591
43595
|
return;
|
|
43592
43596
|
}
|
|
43593
43597
|
const editedCell = this.currentEditedCell;
|
|
@@ -51417,9 +51421,9 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51417
51421
|
allSheetsMatches = [];
|
|
51418
51422
|
activeSheetMatches = [];
|
|
51419
51423
|
specificRangeMatches = [];
|
|
51424
|
+
selectedMatchPosition = null;
|
|
51420
51425
|
currentSearchRegex = null;
|
|
51421
51426
|
initialShowFormulaState;
|
|
51422
|
-
preserveSelectedMatchIndex = false;
|
|
51423
51427
|
irreplaceableMatchCount = 0;
|
|
51424
51428
|
isSearchDirty = false;
|
|
51425
51429
|
shouldFinalizeUpdateSelection = false;
|
|
@@ -51541,7 +51545,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51541
51545
|
*/
|
|
51542
51546
|
_updateSearch(toSearch, searchOptions) {
|
|
51543
51547
|
this.searchOptions = searchOptions;
|
|
51544
|
-
if (toSearch !== this.toSearch)
|
|
51548
|
+
if (toSearch !== this.toSearch) {
|
|
51549
|
+
this.selectedMatchIndex = null;
|
|
51550
|
+
this.selectedMatchPosition = null;
|
|
51551
|
+
}
|
|
51545
51552
|
this.toSearch = toSearch;
|
|
51546
51553
|
this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
|
|
51547
51554
|
this.refreshSearch({
|
|
@@ -51553,8 +51560,14 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51553
51560
|
* refresh the matches according to the current search options
|
|
51554
51561
|
*/
|
|
51555
51562
|
refreshSearch(options) {
|
|
51556
|
-
if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
|
|
51557
51563
|
this.findMatches();
|
|
51564
|
+
if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
|
|
51565
|
+
this.selectedMatchIndex = null;
|
|
51566
|
+
this.selectedMatchPosition = null;
|
|
51567
|
+
} else {
|
|
51568
|
+
const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
|
|
51569
|
+
if (index !== -1) this.selectedMatchIndex = index;
|
|
51570
|
+
}
|
|
51558
51571
|
this.selectNextCell(0, options);
|
|
51559
51572
|
}
|
|
51560
51573
|
getSheetsInSearchOrder() {
|
|
@@ -51622,6 +51635,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51622
51635
|
const matches = this.searchMatches;
|
|
51623
51636
|
if (!matches.length) {
|
|
51624
51637
|
this.selectedMatchIndex = null;
|
|
51638
|
+
this.selectedMatchPosition = null;
|
|
51625
51639
|
return;
|
|
51626
51640
|
}
|
|
51627
51641
|
let nextIndex;
|
|
@@ -51635,14 +51649,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51635
51649
|
} else nextIndex = this.selectedMatchIndex + indexChange;
|
|
51636
51650
|
nextIndex = (nextIndex + matches.length) % matches.length;
|
|
51637
51651
|
this.selectedMatchIndex = nextIndex;
|
|
51652
|
+
this.selectedMatchPosition = matches[this.selectedMatchIndex];
|
|
51638
51653
|
const selectedMatch = matches[nextIndex];
|
|
51639
51654
|
if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
|
|
51640
|
-
this.preserveSelectedMatchIndex = true;
|
|
51641
51655
|
this.model.dispatch("ACTIVATE_SHEET", {
|
|
51642
51656
|
sheetIdFrom: this.getters.getActiveSheetId(),
|
|
51643
51657
|
sheetIdTo: selectedMatch.sheetId
|
|
51644
51658
|
});
|
|
51645
|
-
this.preserveSelectedMatchIndex = false;
|
|
51646
51659
|
this.isSearchDirty = false;
|
|
51647
51660
|
}
|
|
51648
51661
|
this.model.selection.getBackToDefault();
|
|
@@ -51653,7 +51666,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51653
51666
|
*/
|
|
51654
51667
|
replace() {
|
|
51655
51668
|
if (this.selectedMatchIndex === null) return;
|
|
51656
|
-
this.preserveSelectedMatchIndex = true;
|
|
51657
51669
|
this.shouldFinalizeUpdateSelection = true;
|
|
51658
51670
|
this.model.dispatch("REPLACE_SEARCH", {
|
|
51659
51671
|
searchString: this.toSearch,
|
|
@@ -51661,7 +51673,6 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51661
51673
|
matches: [this.searchMatches[this.selectedMatchIndex]],
|
|
51662
51674
|
searchOptions: this.searchOptions
|
|
51663
51675
|
});
|
|
51664
|
-
this.preserveSelectedMatchIndex = false;
|
|
51665
51676
|
}
|
|
51666
51677
|
/**
|
|
51667
51678
|
* Apply the replace function to all the matches one time.
|
|
@@ -62913,7 +62924,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
62913
62924
|
const definition = getters.getPivotCoreDefinition(pivotId);
|
|
62914
62925
|
const isDashboard = getters.isDashboard();
|
|
62915
62926
|
const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
|
|
62916
|
-
const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
|
|
62927
|
+
const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
|
|
62917
62928
|
const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
|
|
62918
62929
|
const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
|
|
62919
62930
|
return {
|
|
@@ -63865,9 +63876,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
63865
63876
|
this.refreshPivot(cmd.id);
|
|
63866
63877
|
break;
|
|
63867
63878
|
case "ADD_PIVOT":
|
|
63879
|
+
this.unusedPivots?.push(cmd.pivotId);
|
|
63868
63880
|
this.setupPivot(cmd.pivotId);
|
|
63869
63881
|
break;
|
|
63870
63882
|
case "DUPLICATE_PIVOT":
|
|
63883
|
+
this.unusedPivots?.push(cmd.newPivotId);
|
|
63871
63884
|
this.setupPivot(cmd.newPivotId);
|
|
63872
63885
|
break;
|
|
63873
63886
|
case "UPDATE_PIVOT":
|
|
@@ -64067,8 +64080,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
64067
64080
|
}
|
|
64068
64081
|
}
|
|
64069
64082
|
for (const pivotId of this.getters.getPivotIds()) {
|
|
64070
|
-
const pivot = this.getters.
|
|
64071
|
-
for (const measure of pivot.
|
|
64083
|
+
const pivot = this.getters.getPivotCoreDefinition(pivotId);
|
|
64084
|
+
for (const measure of pivot.measures) if (measure.computedBy) {
|
|
64072
64085
|
const { sheetId } = measure.computedBy;
|
|
64073
64086
|
const formula = this.getters.getMeasureCompiledFormula(pivotId, measure);
|
|
64074
64087
|
const relatedPivotIds = this.getPivotIdsFromFormula(sheetId, formula);
|
|
@@ -67276,7 +67289,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
67276
67289
|
"REMOVE_TABLE",
|
|
67277
67290
|
"RESIZE_TABLE",
|
|
67278
67291
|
"CREATE_TABLE_STYLE",
|
|
67279
|
-
"REMOVE_TABLE_STYLE"
|
|
67292
|
+
"REMOVE_TABLE_STYLE",
|
|
67293
|
+
"DELETE_CONTENT"
|
|
67280
67294
|
]);
|
|
67281
67295
|
function doesCommandInvalidatesTableStyle(cmd) {
|
|
67282
67296
|
return invalidateTableStyleCommandsSet.has(cmd.type);
|
|
@@ -76666,6 +76680,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76666
76680
|
`;
|
|
76667
76681
|
}
|
|
76668
76682
|
function insertText(text, fontColor = "000000", fontsize = 16, style = {}) {
|
|
76683
|
+
const textProperties = [
|
|
76684
|
+
["b", style.bold ? "1" : "0"],
|
|
76685
|
+
["i", style.italic ? "1" : "0"],
|
|
76686
|
+
["sz", fontsize * 100]
|
|
76687
|
+
];
|
|
76669
76688
|
return escapeXml`
|
|
76670
76689
|
<c:tx>
|
|
76671
76690
|
<c:rich>
|
|
@@ -76673,13 +76692,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
76673
76692
|
<a:lstStyle />
|
|
76674
76693
|
<a:p>
|
|
76675
76694
|
<a:pPr lvl="0">
|
|
76676
|
-
<a:defRPr
|
|
76695
|
+
<a:defRPr ${formatAttributes(textProperties)}>
|
|
76677
76696
|
${solidFill(fontColor)}
|
|
76678
76697
|
<a:latin typeface="+mn-lt"/>
|
|
76679
76698
|
</a:defRPr>
|
|
76680
76699
|
</a:pPr>
|
|
76681
76700
|
<a:r> <!-- Runs -->
|
|
76682
|
-
<a:rPr
|
|
76701
|
+
<a:rPr ${formatAttributes(textProperties)}/>
|
|
76683
76702
|
<a:t>${text}</a:t>
|
|
76684
76703
|
</a:r>
|
|
76685
76704
|
</a:p>
|
|
@@ -79376,8 +79395,8 @@ exports.stores = stores;
|
|
|
79376
79395
|
exports.tokenColors = tokenColors;
|
|
79377
79396
|
exports.tokenize = tokenize;
|
|
79378
79397
|
|
|
79379
|
-
__info__.version = "19.0.
|
|
79380
|
-
__info__.date = "2026-
|
|
79381
|
-
__info__.hash = "
|
|
79398
|
+
__info__.version = "19.0.38";
|
|
79399
|
+
__info__.date = "2026-06-17T08:50:59.627Z";
|
|
79400
|
+
__info__.hash = "f469250";
|
|
79382
79401
|
|
|
79383
79402
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|