@odoo/o-spreadsheet 19.1.33 → 19.1.34
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.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.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.34
|
|
6
|
+
* @date 2026-09-04T07:25:45.601Z
|
|
7
|
+
* @hash b709c26
|
|
8
8
|
*/
|
|
9
9
|
:root {
|
|
10
10
|
--os-gray-100: light-dark(#f9fafb, #1b1d26);
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
--os-black: light-dark(#000000, #ffffff);
|
|
22
22
|
--os-white-bg: light-dark(#ffffff, var(--os-gray-200));
|
|
23
23
|
|
|
24
|
-
--os-default-font: "Roboto", "Arial";
|
|
24
|
+
--os-default-font: "Roboto", "Arial", "Liberation Sans";
|
|
25
25
|
--os-default-font-size: 10px;
|
|
26
26
|
--os-link-color: light-dark(#017e84, #02c7b5);
|
|
27
27
|
--os-link-hover-color: light-dark(#01585c, #4ed8cb);
|
|
@@ -2582,6 +2582,9 @@
|
|
|
2582
2582
|
position: absolute;
|
|
2583
2583
|
cursor: pointer;
|
|
2584
2584
|
}
|
|
2585
|
+
.o-grid.o-dashboard-grid {
|
|
2586
|
+
background: #ffffff;
|
|
2587
|
+
}
|
|
2585
2588
|
}
|
|
2586
2589
|
|
|
2587
2590
|
/* Originates from src/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.css */
|
|
@@ -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.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.34
|
|
6
|
+
* @date 2026-09-04T07:25:44.071Z
|
|
7
|
+
* @hash b709c26
|
|
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, whenReady, xml } from "@odoo/owl";
|
|
@@ -8263,16 +8263,16 @@ const chartShowValuesPlugin = {
|
|
|
8263
8263
|
drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
8264
8264
|
break;
|
|
8265
8265
|
case "bar":
|
|
8266
|
-
options.horizontal ? drawHorizontalBarChartValues(chart, options, ctx) : drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
8266
|
+
options.horizontal ? drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: true }) : drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
8267
8267
|
break;
|
|
8268
8268
|
case "pyramid":
|
|
8269
|
-
drawHorizontalBarChartValues(chart, options, ctx);
|
|
8269
|
+
drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: true });
|
|
8270
8270
|
break;
|
|
8271
8271
|
case "calendar":
|
|
8272
8272
|
drawBarChartValues(chart, options, ctx);
|
|
8273
8273
|
break;
|
|
8274
8274
|
case "funnel":
|
|
8275
|
-
drawHorizontalBarChartValues(chart, options, ctx);
|
|
8275
|
+
drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: false });
|
|
8276
8276
|
break;
|
|
8277
8277
|
}
|
|
8278
8278
|
ctx.restore();
|
|
@@ -8342,7 +8342,7 @@ function drawBarChartValues(chart, options, ctx) {
|
|
|
8342
8342
|
}
|
|
8343
8343
|
}
|
|
8344
8344
|
}
|
|
8345
|
-
function drawHorizontalBarChartValues(chart, options, ctx) {
|
|
8345
|
+
function drawHorizontalBarChartValues(chart, options, ctx, args) {
|
|
8346
8346
|
const textsPositions = {};
|
|
8347
8347
|
for (const dataset of chart._metasets) {
|
|
8348
8348
|
if (isTrendLineAxis(dataset.xAxisID)) return;
|
|
@@ -8357,7 +8357,7 @@ function drawHorizontalBarChartValues(chart, options, ctx) {
|
|
|
8357
8357
|
const distanceFromAxisOrigin = Math.abs(point.x - xZeroLine);
|
|
8358
8358
|
const PADDING = 3;
|
|
8359
8359
|
let xPosition;
|
|
8360
|
-
if (distanceFromAxisOrigin < textWidth) xPosition = value < 0 ? xZeroLine - textWidth / 2 - PADDING : xZeroLine + textWidth / 2 + PADDING;
|
|
8360
|
+
if (args.offsetFromAxisOrigin && distanceFromAxisOrigin < textWidth) xPosition = value < 0 ? xZeroLine - textWidth / 2 - PADDING : xZeroLine + textWidth / 2 + PADDING;
|
|
8361
8361
|
else xPosition = value < 0 ? point.x + point.width / 2 : point.x - point.width / 2;
|
|
8362
8362
|
if (!textsPositions[yPosition]) textsPositions[yPosition] = [];
|
|
8363
8363
|
for (const otherPosition of textsPositions[yPosition]) if (Math.abs(otherPosition - xPosition) < textWidth) xPosition = value < 0 ? otherPosition - textWidth - PADDING : otherPosition + textWidth + PADDING;
|
|
@@ -26874,9 +26874,10 @@ var Composer = class extends Component {
|
|
|
26874
26874
|
compositionActive = false;
|
|
26875
26875
|
spreadsheetRect = useSpreadsheetRect();
|
|
26876
26876
|
lastHoveredTokenIndex = void 0;
|
|
26877
|
-
debouncedHover = debounce((tokenIndex, hoveredRect) => {
|
|
26877
|
+
debouncedHover = debounce((tokenIndex, composerContent, hoveredRect) => {
|
|
26878
26878
|
const selection = this.contentHelper.getCurrentSelection();
|
|
26879
|
-
|
|
26879
|
+
const currentContent = this.props.composerStore.currentContent;
|
|
26880
|
+
if (selection.start !== selection.end || currentContent !== composerContent) return;
|
|
26880
26881
|
const currentHoveredContext = this.props.composerStore.hoveredTokens;
|
|
26881
26882
|
this.props.composerStore.hoverToken(tokenIndex);
|
|
26882
26883
|
if (!deepEquals(currentHoveredContext, this.props.composerStore.hoveredTokens)) this.composerState.hoveredRect = hoveredRect;
|
|
@@ -27194,7 +27195,8 @@ var Composer = class extends Component {
|
|
|
27194
27195
|
onTokenHover(tokenIndex, hoveredRect) {
|
|
27195
27196
|
if (this.lastHoveredTokenIndex !== tokenIndex) {
|
|
27196
27197
|
this.lastHoveredTokenIndex = tokenIndex;
|
|
27197
|
-
this.
|
|
27198
|
+
const composerContent = this.props.composerStore.currentContent;
|
|
27199
|
+
this.debouncedHover(tokenIndex, composerContent, hoveredRect);
|
|
27198
27200
|
}
|
|
27199
27201
|
}
|
|
27200
27202
|
/**
|
|
@@ -50994,7 +50996,13 @@ var PivotSpreadsheetSidePanel = class extends Component {
|
|
|
50994
50996
|
}
|
|
50995
50997
|
onSelectionChanged(ranges) {
|
|
50996
50998
|
this.state.rangeHasChanged = true;
|
|
50997
|
-
|
|
50999
|
+
if (ranges.length === 0) {
|
|
51000
|
+
this.state.range = void 0;
|
|
51001
|
+
return;
|
|
51002
|
+
}
|
|
51003
|
+
const sheetId = this.env.model.getters.getActiveSheetId();
|
|
51004
|
+
const range = this.env.model.getters.getRangeFromSheetXC(sheetId, ranges[0]);
|
|
51005
|
+
this.state.range = this.env.model.getters.getRangeString(range, "forceSheetReference", { useBoundedReference: true });
|
|
50998
51006
|
}
|
|
50999
51007
|
onSelectionConfirmed() {
|
|
51000
51008
|
if (this.state.range) {
|
|
@@ -53666,6 +53674,7 @@ var CarouselPlugin = class extends CorePlugin {
|
|
|
53666
53674
|
return "Success";
|
|
53667
53675
|
case "UPDATE_CAROUSEL":
|
|
53668
53676
|
if (!this.carousels[cmd.sheetId]?.[cmd.figureId]) return "InvalidFigureId";
|
|
53677
|
+
for (const item of cmd.definition.items) if (item.type === "chart" && !this.getters.getChart(item.chartId)) return "ChartDoesNotExist";
|
|
53669
53678
|
return "Success";
|
|
53670
53679
|
}
|
|
53671
53680
|
return "Success";
|
|
@@ -58756,14 +58765,16 @@ var FormulaDependencyGraph = class {
|
|
|
58756
58765
|
*/
|
|
58757
58766
|
getCellsDependingOn(ranges, visited = new RangeSet()) {
|
|
58758
58767
|
visited = visited.copy();
|
|
58768
|
+
let initialRangesToRemove = visited.copy();
|
|
58759
58769
|
const queue = Array.from(ranges).reverse();
|
|
58760
58770
|
while (queue.length > 0) {
|
|
58761
58771
|
const range = queue.pop();
|
|
58762
58772
|
visited.add(range);
|
|
58763
58773
|
const impactedRanges = this.rTree.search(range);
|
|
58764
58774
|
queue.push(...impactedRanges.difference(visited));
|
|
58775
|
+
initialRangesToRemove = initialRangesToRemove.difference(impactedRanges);
|
|
58765
58776
|
}
|
|
58766
|
-
for (const range of
|
|
58777
|
+
for (const range of initialRangesToRemove) visited.delete(range);
|
|
58767
58778
|
return visited;
|
|
58768
58779
|
}
|
|
58769
58780
|
};
|
|
@@ -79196,6 +79207,6 @@ const chartHelpers = {
|
|
|
79196
79207
|
//#endregion
|
|
79197
79208
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
79198
79209
|
|
|
79199
|
-
__info__.version = "19.1.
|
|
79200
|
-
__info__.date = "2026-
|
|
79201
|
-
__info__.hash = "
|
|
79210
|
+
__info__.version = "19.1.34";
|
|
79211
|
+
__info__.date = "2026-09-04T07:25:44.071Z";
|
|
79212
|
+
__info__.hash = "b709c26";
|
|
@@ -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.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.34
|
|
6
|
+
* @date 2026-09-04T07:25:44.071Z
|
|
7
|
+
* @hash b709c26
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -8265,16 +8265,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8265
8265
|
drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
8266
8266
|
break;
|
|
8267
8267
|
case "bar":
|
|
8268
|
-
options.horizontal ? drawHorizontalBarChartValues(chart, options, ctx) : drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
8268
|
+
options.horizontal ? drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: true }) : drawLineOrBarOrRadarChartValues(chart, options, ctx);
|
|
8269
8269
|
break;
|
|
8270
8270
|
case "pyramid":
|
|
8271
|
-
drawHorizontalBarChartValues(chart, options, ctx);
|
|
8271
|
+
drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: true });
|
|
8272
8272
|
break;
|
|
8273
8273
|
case "calendar":
|
|
8274
8274
|
drawBarChartValues(chart, options, ctx);
|
|
8275
8275
|
break;
|
|
8276
8276
|
case "funnel":
|
|
8277
|
-
drawHorizontalBarChartValues(chart, options, ctx);
|
|
8277
|
+
drawHorizontalBarChartValues(chart, options, ctx, { offsetFromAxisOrigin: false });
|
|
8278
8278
|
break;
|
|
8279
8279
|
}
|
|
8280
8280
|
ctx.restore();
|
|
@@ -8344,7 +8344,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8344
8344
|
}
|
|
8345
8345
|
}
|
|
8346
8346
|
}
|
|
8347
|
-
function drawHorizontalBarChartValues(chart, options, ctx) {
|
|
8347
|
+
function drawHorizontalBarChartValues(chart, options, ctx, args) {
|
|
8348
8348
|
const textsPositions = {};
|
|
8349
8349
|
for (const dataset of chart._metasets) {
|
|
8350
8350
|
if (isTrendLineAxis(dataset.xAxisID)) return;
|
|
@@ -8359,7 +8359,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
8359
8359
|
const distanceFromAxisOrigin = Math.abs(point.x - xZeroLine);
|
|
8360
8360
|
const PADDING = 3;
|
|
8361
8361
|
let xPosition;
|
|
8362
|
-
if (distanceFromAxisOrigin < textWidth) xPosition = value < 0 ? xZeroLine - textWidth / 2 - PADDING : xZeroLine + textWidth / 2 + PADDING;
|
|
8362
|
+
if (args.offsetFromAxisOrigin && distanceFromAxisOrigin < textWidth) xPosition = value < 0 ? xZeroLine - textWidth / 2 - PADDING : xZeroLine + textWidth / 2 + PADDING;
|
|
8363
8363
|
else xPosition = value < 0 ? point.x + point.width / 2 : point.x - point.width / 2;
|
|
8364
8364
|
if (!textsPositions[yPosition]) textsPositions[yPosition] = [];
|
|
8365
8365
|
for (const otherPosition of textsPositions[yPosition]) if (Math.abs(otherPosition - xPosition) < textWidth) xPosition = value < 0 ? otherPosition - textWidth - PADDING : otherPosition + textWidth + PADDING;
|
|
@@ -26876,9 +26876,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
26876
26876
|
compositionActive = false;
|
|
26877
26877
|
spreadsheetRect = useSpreadsheetRect();
|
|
26878
26878
|
lastHoveredTokenIndex = void 0;
|
|
26879
|
-
debouncedHover = debounce((tokenIndex, hoveredRect) => {
|
|
26879
|
+
debouncedHover = debounce((tokenIndex, composerContent, hoveredRect) => {
|
|
26880
26880
|
const selection = this.contentHelper.getCurrentSelection();
|
|
26881
|
-
|
|
26881
|
+
const currentContent = this.props.composerStore.currentContent;
|
|
26882
|
+
if (selection.start !== selection.end || currentContent !== composerContent) return;
|
|
26882
26883
|
const currentHoveredContext = this.props.composerStore.hoveredTokens;
|
|
26883
26884
|
this.props.composerStore.hoverToken(tokenIndex);
|
|
26884
26885
|
if (!deepEquals(currentHoveredContext, this.props.composerStore.hoveredTokens)) this.composerState.hoveredRect = hoveredRect;
|
|
@@ -27196,7 +27197,8 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
27196
27197
|
onTokenHover(tokenIndex, hoveredRect) {
|
|
27197
27198
|
if (this.lastHoveredTokenIndex !== tokenIndex) {
|
|
27198
27199
|
this.lastHoveredTokenIndex = tokenIndex;
|
|
27199
|
-
this.
|
|
27200
|
+
const composerContent = this.props.composerStore.currentContent;
|
|
27201
|
+
this.debouncedHover(tokenIndex, composerContent, hoveredRect);
|
|
27200
27202
|
}
|
|
27201
27203
|
}
|
|
27202
27204
|
/**
|
|
@@ -50996,7 +50998,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50996
50998
|
}
|
|
50997
50999
|
onSelectionChanged(ranges) {
|
|
50998
51000
|
this.state.rangeHasChanged = true;
|
|
50999
|
-
|
|
51001
|
+
if (ranges.length === 0) {
|
|
51002
|
+
this.state.range = void 0;
|
|
51003
|
+
return;
|
|
51004
|
+
}
|
|
51005
|
+
const sheetId = this.env.model.getters.getActiveSheetId();
|
|
51006
|
+
const range = this.env.model.getters.getRangeFromSheetXC(sheetId, ranges[0]);
|
|
51007
|
+
this.state.range = this.env.model.getters.getRangeString(range, "forceSheetReference", { useBoundedReference: true });
|
|
51000
51008
|
}
|
|
51001
51009
|
onSelectionConfirmed() {
|
|
51002
51010
|
if (this.state.range) {
|
|
@@ -53668,6 +53676,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
53668
53676
|
return "Success";
|
|
53669
53677
|
case "UPDATE_CAROUSEL":
|
|
53670
53678
|
if (!this.carousels[cmd.sheetId]?.[cmd.figureId]) return "InvalidFigureId";
|
|
53679
|
+
for (const item of cmd.definition.items) if (item.type === "chart" && !this.getters.getChart(item.chartId)) return "ChartDoesNotExist";
|
|
53671
53680
|
return "Success";
|
|
53672
53681
|
}
|
|
53673
53682
|
return "Success";
|
|
@@ -58758,14 +58767,16 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
58758
58767
|
*/
|
|
58759
58768
|
getCellsDependingOn(ranges, visited = new RangeSet()) {
|
|
58760
58769
|
visited = visited.copy();
|
|
58770
|
+
let initialRangesToRemove = visited.copy();
|
|
58761
58771
|
const queue = Array.from(ranges).reverse();
|
|
58762
58772
|
while (queue.length > 0) {
|
|
58763
58773
|
const range = queue.pop();
|
|
58764
58774
|
visited.add(range);
|
|
58765
58775
|
const impactedRanges = this.rTree.search(range);
|
|
58766
58776
|
queue.push(...impactedRanges.difference(visited));
|
|
58777
|
+
initialRangesToRemove = initialRangesToRemove.difference(impactedRanges);
|
|
58767
58778
|
}
|
|
58768
|
-
for (const range of
|
|
58779
|
+
for (const range of initialRangesToRemove) visited.delete(range);
|
|
58769
58780
|
return visited;
|
|
58770
58781
|
}
|
|
58771
58782
|
};
|
|
@@ -79251,8 +79262,8 @@ exports.stores = stores;
|
|
|
79251
79262
|
exports.tokenColors = tokenColors;
|
|
79252
79263
|
exports.tokenize = tokenize;
|
|
79253
79264
|
|
|
79254
|
-
__info__.version = "19.1.
|
|
79255
|
-
__info__.date = "2026-
|
|
79256
|
-
__info__.hash = "
|
|
79265
|
+
__info__.version = "19.1.34";
|
|
79266
|
+
__info__.date = "2026-09-04T07:25:44.071Z";
|
|
79267
|
+
__info__.hash = "b709c26";
|
|
79257
79268
|
|
|
79258
79269
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|