@odoo/o-spreadsheet 18.0.80 → 18.0.81
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.
|
@@ -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.0.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.81
|
|
6
|
+
* @date 2026-09-04T07:02:59.688Z
|
|
7
|
+
* @hash a952c0c
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { Component, markRaw, onMounted, onPatched, onWillPatch, onWillStart, onWillUnmount, onWillUpdateProps, status, toRaw, useChildSubEnv, useComponent, useEffect, useEnv, useExternalListener, useRef, useState, useSubEnv, xml } from "@odoo/owl";
|
|
@@ -31699,12 +31699,48 @@ var TopBarComponentRegistry = class extends Registry {
|
|
|
31699
31699
|
const topbarComponentRegistry = new TopBarComponentRegistry();
|
|
31700
31700
|
|
|
31701
31701
|
//#endregion
|
|
31702
|
-
//#region src/components/
|
|
31702
|
+
//#region src/components/icons/raw_svgs.ts
|
|
31703
|
+
/**
|
|
31704
|
+
* SVG markup used in `css` tagged templates as `data:image/svg+xml` URIs.
|
|
31705
|
+
*
|
|
31706
|
+
* Keep these values in a separate module so Rolldown references them instead
|
|
31707
|
+
* of inlining them into template literals. Inlining produces nested template
|
|
31708
|
+
* literals, which the downstream `rjsmin` minifier cannot parse correctly
|
|
31709
|
+
* because it relies on regular expressions.
|
|
31710
|
+
*
|
|
31711
|
+
* Do not inline these constants.
|
|
31712
|
+
*/
|
|
31703
31713
|
const CHECK_SVG = `
|
|
31704
31714
|
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'>
|
|
31705
31715
|
<path fill='none' stroke='#FFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/>
|
|
31706
31716
|
</svg>
|
|
31707
31717
|
`;
|
|
31718
|
+
const CIRCLE_SVG = `
|
|
31719
|
+
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
|
|
31720
|
+
<circle r="2" fill="#FFF"/>
|
|
31721
|
+
</svg>
|
|
31722
|
+
`;
|
|
31723
|
+
const FX_SVG = `
|
|
31724
|
+
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 121.8 122.9' width='16' height='16' focusable='false'>
|
|
31725
|
+
<path d='m28 34-4 5v2h10l-6 40c-4 22-6 28-7 30-2 2-3 3-5 3-3 0-7-2-9-4H4c-2 2-4 4-4 7s4 6 8 6 9-2 15-8c8-7 13-17 18-39l7-35 13-1 3-6H49c4-23 7-27 11-27 2 0 5 2 8 6h4c1-1 4-4 4-7 0-2-3-6-9-6-5 0-13 4-20 10-6 7-9 14-11 24h-8zm41 16c4-5 7-7 8-7s2 1 5 9l3 12c-7 11-12 17-16 17l-3-1-2-1c-3 0-6 3-6 7s3 7 7 7c6 0 12-6 22-23l3 10c3 9 6 13 10 13 5 0 11-4 18-15l-3-4c-4 6-7 8-8 8-2 0-4-3-6-10l-5-15 8-10 6-4 3 1 3 2c2 0 6-3 6-7s-2-7-6-7c-6 0-11 5-21 20l-2-6c-3-9-5-14-9-14-5 0-12 6-18 15l3 3z' fill='#BDBDBD'/>
|
|
31726
|
+
</svg>
|
|
31727
|
+
`;
|
|
31728
|
+
const TRANSPARENT_BACKGROUND_SVG = `
|
|
31729
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10">
|
|
31730
|
+
<path fill="#d9d9d9" d="M5 5h5v5H5zH0V0h5"/>
|
|
31731
|
+
</svg>
|
|
31732
|
+
`;
|
|
31733
|
+
const CURSOR_SVG = `
|
|
31734
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="16"><path d="M6.5.4c1.3-.8 2.9-.1 3.8 1.4l2.9 5.1c.2.4.9 1.6-.4 2.3l-1.6.9 1.8 3.1c.2.4.1 1-.2 1.2l-1.6 1c-.3.1-.9 0-1.1-.4l-1.8-3.1-1.6 1c-.6.4-1.7 0-2.2-.8L0 4.3"/><path fill="#fff" d="M9.1 2a1.4 1.1 60 0 0-1.7-.6L5.5 2.5l.9 1.6-1 .6-.9-1.6-.6.4 1.8 3.1-1.3.7-1.8-3.1-1 .6 3.8 6.6 6.8-3.98M3.9 8.8 10.82 5l.795 1.4-6.81 3.96"/></svg>
|
|
31735
|
+
`;
|
|
31736
|
+
const CARET_DOWN_SVG = `
|
|
31737
|
+
<svg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'>
|
|
31738
|
+
<polygon fill='%23374151' points='3.5 4 7 0 0 0'/>
|
|
31739
|
+
</svg>
|
|
31740
|
+
`;
|
|
31741
|
+
|
|
31742
|
+
//#endregion
|
|
31743
|
+
//#region src/components/side_panel/components/checkbox/checkbox.ts
|
|
31708
31744
|
const CHECKBOX_WIDTH = 14;
|
|
31709
31745
|
css`
|
|
31710
31746
|
label.o-checkbox {
|
|
@@ -32564,11 +32600,7 @@ css`
|
|
|
32564
32600
|
border-radius: 8px;
|
|
32565
32601
|
|
|
32566
32602
|
&:checked {
|
|
32567
|
-
background: url("data:image/svg+xml,${encodeURIComponent(
|
|
32568
|
-
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
|
|
32569
|
-
<circle r="2" fill="#FFF"/>
|
|
32570
|
-
</svg>
|
|
32571
|
-
`)}");
|
|
32603
|
+
background: url("data:image/svg+xml,${encodeURIComponent(CIRCLE_SVG)}");
|
|
32572
32604
|
background-color: ${ACTION_COLOR};
|
|
32573
32605
|
border-color: ${ACTION_COLOR};
|
|
32574
32606
|
}
|
|
@@ -33168,11 +33200,7 @@ css`
|
|
|
33168
33200
|
cursor: pointer;
|
|
33169
33201
|
border: 1px solid ${GRAY_300};
|
|
33170
33202
|
background-position: 1px 1px;
|
|
33171
|
-
background-image: url("data:image/svg+xml,${encodeURIComponent(
|
|
33172
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10">
|
|
33173
|
-
<path fill="#d9d9d9" d="M5 5h5v5H5zH0V0h5"/>
|
|
33174
|
-
</svg>
|
|
33175
|
-
`)}");
|
|
33203
|
+
background-image: url("data:image/svg+xml,${encodeURIComponent(TRANSPARENT_BACKGROUND_SVG)}");
|
|
33176
33204
|
}
|
|
33177
33205
|
`;
|
|
33178
33206
|
var RoundColorPicker = class extends Component {
|
|
@@ -40042,7 +40070,13 @@ var PivotSpreadsheetSidePanel = class extends Component {
|
|
|
40042
40070
|
}
|
|
40043
40071
|
onSelectionChanged(ranges) {
|
|
40044
40072
|
this.state.rangeHasChanged = true;
|
|
40045
|
-
|
|
40073
|
+
if (ranges.length === 0) {
|
|
40074
|
+
this.state.range = void 0;
|
|
40075
|
+
return;
|
|
40076
|
+
}
|
|
40077
|
+
const sheetId = this.env.model.getters.getActiveSheetId();
|
|
40078
|
+
const range = this.env.model.getters.getRangeFromSheetXC(sheetId, ranges[0]);
|
|
40079
|
+
this.state.range = this.env.model.getters.getRangeString(range, "forceSheetReference", { useBoundedReference: true });
|
|
40046
40080
|
}
|
|
40047
40081
|
onSelectionConfirmed() {
|
|
40048
40082
|
if (this.state.range) {
|
|
@@ -43258,9 +43292,7 @@ var PaintFormatStore = class extends SpreadsheetStore {
|
|
|
43258
43292
|
//#region src/components/grid_overlay/grid_overlay.ts
|
|
43259
43293
|
css`
|
|
43260
43294
|
.o-paint-format-cursor {
|
|
43261
|
-
cursor: url("data:image/svg+xml,${encodeURIComponent(
|
|
43262
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="16"><path d="M6.5.4c1.3-.8 2.9-.1 3.8 1.4l2.9 5.1c.2.4.9 1.6-.4 2.3l-1.6.9 1.8 3.1c.2.4.1 1-.2 1.2l-1.6 1c-.3.1-.9 0-1.1-.4l-1.8-3.1-1.6 1c-.6.4-1.7 0-2.2-.8L0 4.3"/><path fill="#fff" d="M9.1 2a1.4 1.1 60 0 0-1.7-.6L5.5 2.5l.9 1.6-1 .6-.9-1.6-.6.4 1.8 3.1-1.3.7-1.8-3.1-1 .6 3.8 6.6 6.8-3.98M3.9 8.8 10.82 5l.795 1.4-6.81 3.96"/></svg>
|
|
43263
|
-
`)}"), auto;
|
|
43295
|
+
cursor: url("data:image/svg+xml,${encodeURIComponent(CURSOR_SVG)}"), auto;
|
|
43264
43296
|
}
|
|
43265
43297
|
`;
|
|
43266
43298
|
function useCellHovered(env, gridRef, callback) {
|
|
@@ -51564,6 +51596,16 @@ var FormulaDependencyGraph = class {
|
|
|
51564
51596
|
getCellsDependingOn(ranges, ignore) {
|
|
51565
51597
|
const visited = this.createEmptyPositionSet();
|
|
51566
51598
|
const queue = Array.from(ranges).reverse();
|
|
51599
|
+
const initialPositionsToRemove = this.createEmptyPositionSet();
|
|
51600
|
+
for (const range of ranges) {
|
|
51601
|
+
const zone = range.zone;
|
|
51602
|
+
const sheetId = range.sheetId;
|
|
51603
|
+
for (let col = zone.left; col <= zone.right; col++) for (let row = zone.top; row <= zone.bottom; row++) initialPositionsToRemove.add({
|
|
51604
|
+
sheetId,
|
|
51605
|
+
col,
|
|
51606
|
+
row
|
|
51607
|
+
});
|
|
51608
|
+
}
|
|
51567
51609
|
while (queue.length > 0) {
|
|
51568
51610
|
const range = queue.pop();
|
|
51569
51611
|
const zone = range.zone;
|
|
@@ -51575,9 +51617,13 @@ var FormulaDependencyGraph = class {
|
|
|
51575
51617
|
});
|
|
51576
51618
|
const impactedPositions = this.rTree.search(range).map((dep) => dep.data);
|
|
51577
51619
|
const nextInQueue = {};
|
|
51578
|
-
for (const position of impactedPositions)
|
|
51579
|
-
if (
|
|
51580
|
-
|
|
51620
|
+
for (const position of impactedPositions) {
|
|
51621
|
+
if (ignore.has(position)) continue;
|
|
51622
|
+
initialPositionsToRemove.delete(position);
|
|
51623
|
+
if (!visited.has(position)) {
|
|
51624
|
+
if (!nextInQueue[position.sheetId]) nextInQueue[position.sheetId] = [];
|
|
51625
|
+
nextInQueue[position.sheetId].push(positionToZone(position));
|
|
51626
|
+
}
|
|
51581
51627
|
}
|
|
51582
51628
|
for (const sheetId in nextInQueue) {
|
|
51583
51629
|
const zones = recomputeZones(nextInQueue[sheetId], []);
|
|
@@ -51587,15 +51633,7 @@ var FormulaDependencyGraph = class {
|
|
|
51587
51633
|
})));
|
|
51588
51634
|
}
|
|
51589
51635
|
}
|
|
51590
|
-
for (const
|
|
51591
|
-
const zone = range.zone;
|
|
51592
|
-
const sheetId = range.sheetId;
|
|
51593
|
-
for (let col = zone.left; col <= zone.right; col++) for (let row = zone.top; row <= zone.bottom; row++) visited.delete({
|
|
51594
|
-
sheetId,
|
|
51595
|
-
col,
|
|
51596
|
-
row
|
|
51597
|
-
});
|
|
51598
|
-
}
|
|
51636
|
+
for (const position of initialPositionsToRemove) visited.delete(position);
|
|
51599
51637
|
return visited;
|
|
51600
51638
|
}
|
|
51601
51639
|
};
|
|
@@ -58693,8 +58731,8 @@ var InternalViewport = class {
|
|
|
58693
58731
|
const { end: lastRowEnd, size: lastRowSize } = this.getters.getRowDimensions(this.sheetId, lastRow);
|
|
58694
58732
|
const leftColIndex = this.searchHeaderIndex("COL", lastColEnd - this.viewportWidth, 0);
|
|
58695
58733
|
const leftColSize = this.getters.getColSize(this.sheetId, leftColIndex);
|
|
58696
|
-
const
|
|
58697
|
-
const topRowSize = this.getters.getRowSize(this.sheetId,
|
|
58734
|
+
const topRowIndex = this.searchHeaderIndex("ROW", lastRowEnd - this.viewportHeight, 0);
|
|
58735
|
+
const topRowSize = this.getters.getRowSize(this.sheetId, topRowIndex);
|
|
58698
58736
|
let width = lastColEnd - this.offsetCorrectionX;
|
|
58699
58737
|
if (this.canScrollHorizontally) {
|
|
58700
58738
|
width += Math.max(96, Math.min(leftColSize, this.viewportWidth - lastColSize));
|
|
@@ -58872,7 +58910,11 @@ var InternalViewport = class {
|
|
|
58872
58910
|
this.left = this.searchHeaderIndex("COL", this.offsetScrollbarX, this.boundaries.left);
|
|
58873
58911
|
this.right = Math.min(this.boundaries.right, this.searchHeaderIndex("COL", this.viewportWidth, this.left));
|
|
58874
58912
|
if (!this.viewportWidth) return;
|
|
58875
|
-
if (this.left === -1)
|
|
58913
|
+
if (this.left === -1) {
|
|
58914
|
+
const colsHeight = this.getters.getColRowOffset("COL", this.boundaries.left, this.boundaries.right);
|
|
58915
|
+
if (0 < colsHeight && colsHeight <= this.offsetScrollbarX) this.left = this.boundaries.right;
|
|
58916
|
+
else this.left = this.boundaries.left;
|
|
58917
|
+
}
|
|
58876
58918
|
if (this.right === -1) this.right = this.boundaries.right;
|
|
58877
58919
|
this.offsetX = this.getters.getColDimensions(sheetId, this.left).start - this.getters.getColDimensions(sheetId, this.boundaries.left).start;
|
|
58878
58920
|
}
|
|
@@ -58883,7 +58925,11 @@ var InternalViewport = class {
|
|
|
58883
58925
|
this.top = this.searchHeaderIndex("ROW", this.offsetScrollbarY, this.boundaries.top);
|
|
58884
58926
|
this.bottom = Math.min(this.boundaries.bottom, this.searchHeaderIndex("ROW", this.viewportHeight, this.top));
|
|
58885
58927
|
if (!this.viewportHeight) return;
|
|
58886
|
-
if (this.top === -1)
|
|
58928
|
+
if (this.top === -1) {
|
|
58929
|
+
const rowsHeight = this.getters.getColRowOffset("ROW", this.boundaries.top, this.boundaries.bottom);
|
|
58930
|
+
if (0 < rowsHeight && rowsHeight <= this.offsetScrollbarY) this.top = this.boundaries.bottom;
|
|
58931
|
+
else this.top = this.boundaries.top;
|
|
58932
|
+
}
|
|
58887
58933
|
if (this.bottom === -1) this.bottom = this.boundaries.bottom;
|
|
58888
58934
|
this.offsetY = this.getters.getRowDimensions(sheetId, this.top).start - this.getters.getRowDimensions(sheetId, this.boundaries.top).start;
|
|
58889
58935
|
}
|
|
@@ -61509,11 +61555,7 @@ css`
|
|
|
61509
61555
|
/* In readonly we always show the fx icon if the composer is empty, not matter the focus */
|
|
61510
61556
|
.o-composer:empty:not(:focus):not(.active)::before,
|
|
61511
61557
|
&.o-topbar-composer-readonly .o-composer:empty::before {
|
|
61512
|
-
content: url("data:image/svg+xml,${encodeURIComponent(
|
|
61513
|
-
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 121.8 122.9' width='16' height='16' focusable='false'>
|
|
61514
|
-
<path d='m28 34-4 5v2h10l-6 40c-4 22-6 28-7 30-2 2-3 3-5 3-3 0-7-2-9-4H4c-2 2-4 4-4 7s4 6 8 6 9-2 15-8c8-7 13-17 18-39l7-35 13-1 3-6H49c4-23 7-27 11-27 2 0 5 2 8 6h4c1-1 4-4 4-7 0-2-3-6-9-6-5 0-13 4-20 10-6 7-9 14-11 24h-8zm41 16c4-5 7-7 8-7s2 1 5 9l3 12c-7 11-12 17-16 17l-3-1-2-1c-3 0-6 3-6 7s3 7 7 7c6 0 12-6 22-23l3 10c3 9 6 13 10 13 5 0 11-4 18-15l-3-4c-4 6-7 8-8 8-2 0-4-3-6-10l-5-15 8-10 6-4 3 1 3 2c2 0 6-3 6-7s-2-7-6-7c-6 0-11 5-21 20l-2-6c-3-9-5-14-9-14-5 0-12 6-18 15l3 3z' fill='#BDBDBD'/>
|
|
61515
|
-
</svg>
|
|
61516
|
-
`)}");
|
|
61558
|
+
content: url("data:image/svg+xml,${encodeURIComponent(FX_SVG)}");
|
|
61517
61559
|
position: relative;
|
|
61518
61560
|
top: 20%;
|
|
61519
61561
|
}
|
|
@@ -62105,11 +62147,7 @@ css`
|
|
|
62105
62147
|
appearance: none;
|
|
62106
62148
|
-webkit-appearance: none;
|
|
62107
62149
|
-moz-appearance: none;
|
|
62108
|
-
background: transparent url("data:image/svg+xml,${encodeURIComponent(
|
|
62109
|
-
<svg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'>
|
|
62110
|
-
<polygon fill='%23374151' points='3.5 4 7 0 0 0'/>
|
|
62111
|
-
</svg>
|
|
62112
|
-
`)}")
|
|
62150
|
+
background: transparent url("data:image/svg+xml,${encodeURIComponent(CARET_DOWN_SVG)}")
|
|
62113
62151
|
no-repeat right center;
|
|
62114
62152
|
text-overflow: ellipsis;
|
|
62115
62153
|
|
|
@@ -66412,6 +66450,6 @@ const constants = {
|
|
|
66412
66450
|
//#endregion
|
|
66413
66451
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
66414
66452
|
|
|
66415
|
-
__info__.version = "18.0.
|
|
66416
|
-
__info__.date = "2026-
|
|
66417
|
-
__info__.hash = "
|
|
66453
|
+
__info__.version = "18.0.81";
|
|
66454
|
+
__info__.date = "2026-09-04T07:02:59.688Z";
|
|
66455
|
+
__info__.hash = "a952c0c";
|
|
@@ -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.0.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.81
|
|
6
|
+
* @date 2026-09-04T07:02:59.688Z
|
|
7
|
+
* @hash a952c0c
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -31701,12 +31701,48 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
31701
31701
|
const topbarComponentRegistry = new TopBarComponentRegistry();
|
|
31702
31702
|
|
|
31703
31703
|
//#endregion
|
|
31704
|
-
//#region src/components/
|
|
31704
|
+
//#region src/components/icons/raw_svgs.ts
|
|
31705
|
+
/**
|
|
31706
|
+
* SVG markup used in `css` tagged templates as `data:image/svg+xml` URIs.
|
|
31707
|
+
*
|
|
31708
|
+
* Keep these values in a separate module so Rolldown references them instead
|
|
31709
|
+
* of inlining them into template literals. Inlining produces nested template
|
|
31710
|
+
* literals, which the downstream `rjsmin` minifier cannot parse correctly
|
|
31711
|
+
* because it relies on regular expressions.
|
|
31712
|
+
*
|
|
31713
|
+
* Do not inline these constants.
|
|
31714
|
+
*/
|
|
31705
31715
|
const CHECK_SVG = `
|
|
31706
31716
|
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'>
|
|
31707
31717
|
<path fill='none' stroke='#FFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/>
|
|
31708
31718
|
</svg>
|
|
31709
31719
|
`;
|
|
31720
|
+
const CIRCLE_SVG = `
|
|
31721
|
+
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
|
|
31722
|
+
<circle r="2" fill="#FFF"/>
|
|
31723
|
+
</svg>
|
|
31724
|
+
`;
|
|
31725
|
+
const FX_SVG = `
|
|
31726
|
+
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 121.8 122.9' width='16' height='16' focusable='false'>
|
|
31727
|
+
<path d='m28 34-4 5v2h10l-6 40c-4 22-6 28-7 30-2 2-3 3-5 3-3 0-7-2-9-4H4c-2 2-4 4-4 7s4 6 8 6 9-2 15-8c8-7 13-17 18-39l7-35 13-1 3-6H49c4-23 7-27 11-27 2 0 5 2 8 6h4c1-1 4-4 4-7 0-2-3-6-9-6-5 0-13 4-20 10-6 7-9 14-11 24h-8zm41 16c4-5 7-7 8-7s2 1 5 9l3 12c-7 11-12 17-16 17l-3-1-2-1c-3 0-6 3-6 7s3 7 7 7c6 0 12-6 22-23l3 10c3 9 6 13 10 13 5 0 11-4 18-15l-3-4c-4 6-7 8-8 8-2 0-4-3-6-10l-5-15 8-10 6-4 3 1 3 2c2 0 6-3 6-7s-2-7-6-7c-6 0-11 5-21 20l-2-6c-3-9-5-14-9-14-5 0-12 6-18 15l3 3z' fill='#BDBDBD'/>
|
|
31728
|
+
</svg>
|
|
31729
|
+
`;
|
|
31730
|
+
const TRANSPARENT_BACKGROUND_SVG = `
|
|
31731
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10">
|
|
31732
|
+
<path fill="#d9d9d9" d="M5 5h5v5H5zH0V0h5"/>
|
|
31733
|
+
</svg>
|
|
31734
|
+
`;
|
|
31735
|
+
const CURSOR_SVG = `
|
|
31736
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="16"><path d="M6.5.4c1.3-.8 2.9-.1 3.8 1.4l2.9 5.1c.2.4.9 1.6-.4 2.3l-1.6.9 1.8 3.1c.2.4.1 1-.2 1.2l-1.6 1c-.3.1-.9 0-1.1-.4l-1.8-3.1-1.6 1c-.6.4-1.7 0-2.2-.8L0 4.3"/><path fill="#fff" d="M9.1 2a1.4 1.1 60 0 0-1.7-.6L5.5 2.5l.9 1.6-1 .6-.9-1.6-.6.4 1.8 3.1-1.3.7-1.8-3.1-1 .6 3.8 6.6 6.8-3.98M3.9 8.8 10.82 5l.795 1.4-6.81 3.96"/></svg>
|
|
31737
|
+
`;
|
|
31738
|
+
const CARET_DOWN_SVG = `
|
|
31739
|
+
<svg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'>
|
|
31740
|
+
<polygon fill='%23374151' points='3.5 4 7 0 0 0'/>
|
|
31741
|
+
</svg>
|
|
31742
|
+
`;
|
|
31743
|
+
|
|
31744
|
+
//#endregion
|
|
31745
|
+
//#region src/components/side_panel/components/checkbox/checkbox.ts
|
|
31710
31746
|
const CHECKBOX_WIDTH = 14;
|
|
31711
31747
|
css`
|
|
31712
31748
|
label.o-checkbox {
|
|
@@ -32566,11 +32602,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
32566
32602
|
border-radius: 8px;
|
|
32567
32603
|
|
|
32568
32604
|
&:checked {
|
|
32569
|
-
background: url("data:image/svg+xml,${encodeURIComponent(
|
|
32570
|
-
<svg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'>
|
|
32571
|
-
<circle r="2" fill="#FFF"/>
|
|
32572
|
-
</svg>
|
|
32573
|
-
`)}");
|
|
32605
|
+
background: url("data:image/svg+xml,${encodeURIComponent(CIRCLE_SVG)}");
|
|
32574
32606
|
background-color: ${ACTION_COLOR};
|
|
32575
32607
|
border-color: ${ACTION_COLOR};
|
|
32576
32608
|
}
|
|
@@ -33170,11 +33202,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
33170
33202
|
cursor: pointer;
|
|
33171
33203
|
border: 1px solid ${GRAY_300};
|
|
33172
33204
|
background-position: 1px 1px;
|
|
33173
|
-
background-image: url("data:image/svg+xml,${encodeURIComponent(
|
|
33174
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10">
|
|
33175
|
-
<path fill="#d9d9d9" d="M5 5h5v5H5zH0V0h5"/>
|
|
33176
|
-
</svg>
|
|
33177
|
-
`)}");
|
|
33205
|
+
background-image: url("data:image/svg+xml,${encodeURIComponent(TRANSPARENT_BACKGROUND_SVG)}");
|
|
33178
33206
|
}
|
|
33179
33207
|
`;
|
|
33180
33208
|
var RoundColorPicker = class extends _odoo_owl.Component {
|
|
@@ -40044,7 +40072,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
40044
40072
|
}
|
|
40045
40073
|
onSelectionChanged(ranges) {
|
|
40046
40074
|
this.state.rangeHasChanged = true;
|
|
40047
|
-
|
|
40075
|
+
if (ranges.length === 0) {
|
|
40076
|
+
this.state.range = void 0;
|
|
40077
|
+
return;
|
|
40078
|
+
}
|
|
40079
|
+
const sheetId = this.env.model.getters.getActiveSheetId();
|
|
40080
|
+
const range = this.env.model.getters.getRangeFromSheetXC(sheetId, ranges[0]);
|
|
40081
|
+
this.state.range = this.env.model.getters.getRangeString(range, "forceSheetReference", { useBoundedReference: true });
|
|
40048
40082
|
}
|
|
40049
40083
|
onSelectionConfirmed() {
|
|
40050
40084
|
if (this.state.range) {
|
|
@@ -43260,9 +43294,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
43260
43294
|
//#region src/components/grid_overlay/grid_overlay.ts
|
|
43261
43295
|
css`
|
|
43262
43296
|
.o-paint-format-cursor {
|
|
43263
|
-
cursor: url("data:image/svg+xml,${encodeURIComponent(
|
|
43264
|
-
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="14" height="16"><path d="M6.5.4c1.3-.8 2.9-.1 3.8 1.4l2.9 5.1c.2.4.9 1.6-.4 2.3l-1.6.9 1.8 3.1c.2.4.1 1-.2 1.2l-1.6 1c-.3.1-.9 0-1.1-.4l-1.8-3.1-1.6 1c-.6.4-1.7 0-2.2-.8L0 4.3"/><path fill="#fff" d="M9.1 2a1.4 1.1 60 0 0-1.7-.6L5.5 2.5l.9 1.6-1 .6-.9-1.6-.6.4 1.8 3.1-1.3.7-1.8-3.1-1 .6 3.8 6.6 6.8-3.98M3.9 8.8 10.82 5l.795 1.4-6.81 3.96"/></svg>
|
|
43265
|
-
`)}"), auto;
|
|
43297
|
+
cursor: url("data:image/svg+xml,${encodeURIComponent(CURSOR_SVG)}"), auto;
|
|
43266
43298
|
}
|
|
43267
43299
|
`;
|
|
43268
43300
|
function useCellHovered(env, gridRef, callback) {
|
|
@@ -51566,6 +51598,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51566
51598
|
getCellsDependingOn(ranges, ignore) {
|
|
51567
51599
|
const visited = this.createEmptyPositionSet();
|
|
51568
51600
|
const queue = Array.from(ranges).reverse();
|
|
51601
|
+
const initialPositionsToRemove = this.createEmptyPositionSet();
|
|
51602
|
+
for (const range of ranges) {
|
|
51603
|
+
const zone = range.zone;
|
|
51604
|
+
const sheetId = range.sheetId;
|
|
51605
|
+
for (let col = zone.left; col <= zone.right; col++) for (let row = zone.top; row <= zone.bottom; row++) initialPositionsToRemove.add({
|
|
51606
|
+
sheetId,
|
|
51607
|
+
col,
|
|
51608
|
+
row
|
|
51609
|
+
});
|
|
51610
|
+
}
|
|
51569
51611
|
while (queue.length > 0) {
|
|
51570
51612
|
const range = queue.pop();
|
|
51571
51613
|
const zone = range.zone;
|
|
@@ -51577,9 +51619,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51577
51619
|
});
|
|
51578
51620
|
const impactedPositions = this.rTree.search(range).map((dep) => dep.data);
|
|
51579
51621
|
const nextInQueue = {};
|
|
51580
|
-
for (const position of impactedPositions)
|
|
51581
|
-
if (
|
|
51582
|
-
|
|
51622
|
+
for (const position of impactedPositions) {
|
|
51623
|
+
if (ignore.has(position)) continue;
|
|
51624
|
+
initialPositionsToRemove.delete(position);
|
|
51625
|
+
if (!visited.has(position)) {
|
|
51626
|
+
if (!nextInQueue[position.sheetId]) nextInQueue[position.sheetId] = [];
|
|
51627
|
+
nextInQueue[position.sheetId].push(positionToZone(position));
|
|
51628
|
+
}
|
|
51583
51629
|
}
|
|
51584
51630
|
for (const sheetId in nextInQueue) {
|
|
51585
51631
|
const zones = recomputeZones(nextInQueue[sheetId], []);
|
|
@@ -51589,15 +51635,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
51589
51635
|
})));
|
|
51590
51636
|
}
|
|
51591
51637
|
}
|
|
51592
|
-
for (const
|
|
51593
|
-
const zone = range.zone;
|
|
51594
|
-
const sheetId = range.sheetId;
|
|
51595
|
-
for (let col = zone.left; col <= zone.right; col++) for (let row = zone.top; row <= zone.bottom; row++) visited.delete({
|
|
51596
|
-
sheetId,
|
|
51597
|
-
col,
|
|
51598
|
-
row
|
|
51599
|
-
});
|
|
51600
|
-
}
|
|
51638
|
+
for (const position of initialPositionsToRemove) visited.delete(position);
|
|
51601
51639
|
return visited;
|
|
51602
51640
|
}
|
|
51603
51641
|
};
|
|
@@ -58695,8 +58733,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58695
58733
|
const { end: lastRowEnd, size: lastRowSize } = this.getters.getRowDimensions(this.sheetId, lastRow);
|
|
58696
58734
|
const leftColIndex = this.searchHeaderIndex("COL", lastColEnd - this.viewportWidth, 0);
|
|
58697
58735
|
const leftColSize = this.getters.getColSize(this.sheetId, leftColIndex);
|
|
58698
|
-
const
|
|
58699
|
-
const topRowSize = this.getters.getRowSize(this.sheetId,
|
|
58736
|
+
const topRowIndex = this.searchHeaderIndex("ROW", lastRowEnd - this.viewportHeight, 0);
|
|
58737
|
+
const topRowSize = this.getters.getRowSize(this.sheetId, topRowIndex);
|
|
58700
58738
|
let width = lastColEnd - this.offsetCorrectionX;
|
|
58701
58739
|
if (this.canScrollHorizontally) {
|
|
58702
58740
|
width += Math.max(96, Math.min(leftColSize, this.viewportWidth - lastColSize));
|
|
@@ -58874,7 +58912,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58874
58912
|
this.left = this.searchHeaderIndex("COL", this.offsetScrollbarX, this.boundaries.left);
|
|
58875
58913
|
this.right = Math.min(this.boundaries.right, this.searchHeaderIndex("COL", this.viewportWidth, this.left));
|
|
58876
58914
|
if (!this.viewportWidth) return;
|
|
58877
|
-
if (this.left === -1)
|
|
58915
|
+
if (this.left === -1) {
|
|
58916
|
+
const colsHeight = this.getters.getColRowOffset("COL", this.boundaries.left, this.boundaries.right);
|
|
58917
|
+
if (0 < colsHeight && colsHeight <= this.offsetScrollbarX) this.left = this.boundaries.right;
|
|
58918
|
+
else this.left = this.boundaries.left;
|
|
58919
|
+
}
|
|
58878
58920
|
if (this.right === -1) this.right = this.boundaries.right;
|
|
58879
58921
|
this.offsetX = this.getters.getColDimensions(sheetId, this.left).start - this.getters.getColDimensions(sheetId, this.boundaries.left).start;
|
|
58880
58922
|
}
|
|
@@ -58885,7 +58927,11 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58885
58927
|
this.top = this.searchHeaderIndex("ROW", this.offsetScrollbarY, this.boundaries.top);
|
|
58886
58928
|
this.bottom = Math.min(this.boundaries.bottom, this.searchHeaderIndex("ROW", this.viewportHeight, this.top));
|
|
58887
58929
|
if (!this.viewportHeight) return;
|
|
58888
|
-
if (this.top === -1)
|
|
58930
|
+
if (this.top === -1) {
|
|
58931
|
+
const rowsHeight = this.getters.getColRowOffset("ROW", this.boundaries.top, this.boundaries.bottom);
|
|
58932
|
+
if (0 < rowsHeight && rowsHeight <= this.offsetScrollbarY) this.top = this.boundaries.bottom;
|
|
58933
|
+
else this.top = this.boundaries.top;
|
|
58934
|
+
}
|
|
58889
58935
|
if (this.bottom === -1) this.bottom = this.boundaries.bottom;
|
|
58890
58936
|
this.offsetY = this.getters.getRowDimensions(sheetId, this.top).start - this.getters.getRowDimensions(sheetId, this.boundaries.top).start;
|
|
58891
58937
|
}
|
|
@@ -61511,11 +61557,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
61511
61557
|
/* In readonly we always show the fx icon if the composer is empty, not matter the focus */
|
|
61512
61558
|
.o-composer:empty:not(:focus):not(.active)::before,
|
|
61513
61559
|
&.o-topbar-composer-readonly .o-composer:empty::before {
|
|
61514
|
-
content: url("data:image/svg+xml,${encodeURIComponent(
|
|
61515
|
-
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 121.8 122.9' width='16' height='16' focusable='false'>
|
|
61516
|
-
<path d='m28 34-4 5v2h10l-6 40c-4 22-6 28-7 30-2 2-3 3-5 3-3 0-7-2-9-4H4c-2 2-4 4-4 7s4 6 8 6 9-2 15-8c8-7 13-17 18-39l7-35 13-1 3-6H49c4-23 7-27 11-27 2 0 5 2 8 6h4c1-1 4-4 4-7 0-2-3-6-9-6-5 0-13 4-20 10-6 7-9 14-11 24h-8zm41 16c4-5 7-7 8-7s2 1 5 9l3 12c-7 11-12 17-16 17l-3-1-2-1c-3 0-6 3-6 7s3 7 7 7c6 0 12-6 22-23l3 10c3 9 6 13 10 13 5 0 11-4 18-15l-3-4c-4 6-7 8-8 8-2 0-4-3-6-10l-5-15 8-10 6-4 3 1 3 2c2 0 6-3 6-7s-2-7-6-7c-6 0-11 5-21 20l-2-6c-3-9-5-14-9-14-5 0-12 6-18 15l3 3z' fill='#BDBDBD'/>
|
|
61517
|
-
</svg>
|
|
61518
|
-
`)}");
|
|
61560
|
+
content: url("data:image/svg+xml,${encodeURIComponent(FX_SVG)}");
|
|
61519
61561
|
position: relative;
|
|
61520
61562
|
top: 20%;
|
|
61521
61563
|
}
|
|
@@ -62107,11 +62149,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
62107
62149
|
appearance: none;
|
|
62108
62150
|
-webkit-appearance: none;
|
|
62109
62151
|
-moz-appearance: none;
|
|
62110
|
-
background: transparent url("data:image/svg+xml,${encodeURIComponent(
|
|
62111
|
-
<svg xmlns='http://www.w3.org/2000/svg' width='7' height='4' viewBox='0 0 7 4'>
|
|
62112
|
-
<polygon fill='%23374151' points='3.5 4 7 0 0 0'/>
|
|
62113
|
-
</svg>
|
|
62114
|
-
`)}")
|
|
62152
|
+
background: transparent url("data:image/svg+xml,${encodeURIComponent(CARET_DOWN_SVG)}")
|
|
62115
62153
|
no-repeat right center;
|
|
62116
62154
|
text-overflow: ellipsis;
|
|
62117
62155
|
|
|
@@ -66458,8 +66496,8 @@ exports.stores = stores;
|
|
|
66458
66496
|
exports.tokenColors = tokenColors;
|
|
66459
66497
|
exports.tokenize = tokenize;
|
|
66460
66498
|
|
|
66461
|
-
__info__.version = "18.0.
|
|
66462
|
-
__info__.date = "2026-
|
|
66463
|
-
__info__.hash = "
|
|
66499
|
+
__info__.version = "18.0.81";
|
|
66500
|
+
__info__.date = "2026-09-04T07:02:59.688Z";
|
|
66501
|
+
__info__.hash = "a952c0c";
|
|
66464
66502
|
|
|
66465
66503
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|