@odoo/o-spreadsheet 19.4.6 → 19.4.8
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 +71 -43
- package/dist/o_spreadsheet.css +19 -3
- package/dist/o_spreadsheet.esm.js +71 -43
- package/dist/o_spreadsheet.iife.js +71 -43
- package/dist/o_spreadsheet.min.iife.js +254 -254
- package/dist/o_spreadsheet.xml +12 -11
- package/dist/types/components/figures/figure/figure.d.ts +1 -0
- package/dist/types/functions/function_registry.d.ts +3 -0
- package/dist/types/functions/helpers.d.ts +4 -0
- package/dist/types/functions/module_operators.d.ts +1 -1
- package/dist/types/functions/module_text.d.ts +11 -11
- package/dist/types/functions/module_web.d.ts +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/plugins/core/squisher.d.ts +2 -1
- package/dist/types/registries/figures_registry.d.ts +1 -0
- package/package.json +1 -1
package/dist/o_spreadsheet.xml
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!--
|
|
2
2
|
This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
3
3
|
@see https://github.com/odoo/o-spreadsheet
|
|
4
|
-
@version 19.4.
|
|
5
|
-
@date 2026-08-
|
|
6
|
-
@hash
|
|
4
|
+
@version 19.4.8
|
|
5
|
+
@date 2026-08-19T09:25:14.798Z
|
|
6
|
+
@hash 9dd828e
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ValidationMessages">
|
|
@@ -7719,14 +7719,15 @@
|
|
|
7719
7719
|
|
|
7720
7720
|
<t t-name="o-spreadsheet-ImageFigure">
|
|
7721
7721
|
<img t-att-src="this.getImagePath" class="w-100 h-100"/>
|
|
7722
|
-
<div
|
|
7722
|
+
<div
|
|
7723
|
+
class="o-figure-menu position-absolute m-2 align-items-center"
|
|
7724
|
+
t-if="this.shouldShowMenuButton">
|
|
7723
7725
|
<div
|
|
7724
|
-
class="o-figure-menu-item
|
|
7726
|
+
class="o-figure-menu-item btn fa fa-ellipsis-v rounded p-1"
|
|
7725
7727
|
t-on-click="this.showMenu"
|
|
7726
7728
|
t-ref="this.menuButtonRef"
|
|
7727
|
-
t-on-contextmenu.prevent.stop="this.showMenu"
|
|
7728
|
-
|
|
7729
|
-
</div>
|
|
7729
|
+
t-on-contextmenu.prevent.stop="this.showMenu"
|
|
7730
|
+
/>
|
|
7730
7731
|
</div>
|
|
7731
7732
|
</t>
|
|
7732
7733
|
|
|
@@ -7882,8 +7883,8 @@
|
|
|
7882
7883
|
|
|
7883
7884
|
<t t-name="o-spreadsheet-FigureComponent">
|
|
7884
7885
|
<div
|
|
7885
|
-
class="o-figure-wrapper
|
|
7886
|
-
t-att-class="{'o-figure-selected': this.isSelected}"
|
|
7886
|
+
class="o-figure-wrapper"
|
|
7887
|
+
t-att-class="{'o-figure-selected': this.isSelected, 'os-theme-dependant': this.isThemeDependant}"
|
|
7887
7888
|
t-att-style="this.wrapperStyle"
|
|
7888
7889
|
t-ref="this.figureWrapperRef">
|
|
7889
7890
|
<div
|
|
@@ -7998,7 +7999,7 @@
|
|
|
7998
7999
|
<t t-name="o-spreadsheet-ChartMenu">
|
|
7999
8000
|
<div class="o-chart-menu position-absolute top-0 end-0" t-on-click.stop="">
|
|
8000
8001
|
<div class="d-flex align-items-center gap-1 p-1 rounded" t-att-style="backgroundColor">
|
|
8001
|
-
<t t-if="this.regionOptions.length > 1">
|
|
8002
|
+
<t t-if="this.env.model.getters.isDashboard() and this.regionOptions.length > 1">
|
|
8002
8003
|
<Select
|
|
8003
8004
|
class="'o-chart-menu-item w-auto py-0 px-1 text-muted text-nowrap rounded border-0'"
|
|
8004
8005
|
popoverClass="'w-auto'"
|
|
@@ -22,6 +22,7 @@ export declare class FigureComponent extends Component<SpreadsheetChildEnv> {
|
|
|
22
22
|
private figureWrapperRef;
|
|
23
23
|
private borderWidth;
|
|
24
24
|
get isSelected(): boolean;
|
|
25
|
+
get isThemeDependant(): boolean;
|
|
25
26
|
get figureRegistry(): import("../../..").Registry<import("../../../registries/figures_registry").FigureContent>;
|
|
26
27
|
private getBorderWidth;
|
|
27
28
|
getBorderStyle(position: "top" | "right" | "bottom" | "left"): string;
|
|
@@ -9,3 +9,6 @@ export declare class FunctionRegistry extends Registry<FunctionDescription> {
|
|
|
9
9
|
replace(name: string, addDescr: AddFunctionDescription): this;
|
|
10
10
|
}
|
|
11
11
|
export declare const functionRegistry: FunctionRegistry;
|
|
12
|
+
/** Formulas using one of these functions are never squished: they are always exported
|
|
13
|
+
* as a full formula string, and they don't become the base formula of the next cells. */
|
|
14
|
+
export declare const NonSquishableFunctionRegistry: Registry<string>;
|
|
@@ -17,6 +17,10 @@ export declare function strictToNumber(data: FunctionResultObject | CellValue |
|
|
|
17
17
|
export declare function toInteger(value: FunctionResultObject | CellValue | undefined, locale: Locale): number;
|
|
18
18
|
export declare function strictToInteger(value: FunctionResultObject | CellValue | undefined, locale: Locale): number;
|
|
19
19
|
export declare function toString(data: FunctionResultObject | CellValue | undefined): string;
|
|
20
|
+
/**
|
|
21
|
+
* Only converts the decimal separator, ignore number format such as % or dates
|
|
22
|
+
*/
|
|
23
|
+
export declare function toLocaleString(data: FunctionResultObject | CellValue | undefined, locale: Locale): string;
|
|
20
24
|
/**
|
|
21
25
|
* Normalize range by setting all the string in the range to lowercase and replacing
|
|
22
26
|
* accent letters with plain letters
|
|
@@ -8,7 +8,7 @@ export declare const ADD: {
|
|
|
8
8
|
export declare const CONCAT: {
|
|
9
9
|
description: string;
|
|
10
10
|
args: import("..").ArgDefinition[];
|
|
11
|
-
compute: (value1: Maybe<FunctionResultObject>, value2: Maybe<FunctionResultObject>) => string;
|
|
11
|
+
compute: (this: import("..").EvalContext, value1: Maybe<FunctionResultObject>, value2: Maybe<FunctionResultObject>) => string;
|
|
12
12
|
isExported: true;
|
|
13
13
|
};
|
|
14
14
|
export declare const DIVIDE: {
|
|
@@ -9,19 +9,19 @@ export declare const CHAR: {
|
|
|
9
9
|
export declare const CLEAN: {
|
|
10
10
|
description: string;
|
|
11
11
|
args: import("..").ArgDefinition[];
|
|
12
|
-
compute: (text: Maybe<FunctionResultObject>) => string;
|
|
12
|
+
compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>) => string;
|
|
13
13
|
isExported: true;
|
|
14
14
|
};
|
|
15
15
|
export declare const CONCATENATE: {
|
|
16
16
|
description: string;
|
|
17
17
|
args: import("..").ArgDefinition[];
|
|
18
|
-
compute: (...datas: Arg[]) => string;
|
|
18
|
+
compute: (this: import("..").EvalContext, ...datas: Arg[]) => string;
|
|
19
19
|
isExported: true;
|
|
20
20
|
};
|
|
21
21
|
export declare const EXACT: {
|
|
22
22
|
description: string;
|
|
23
23
|
args: import("..").ArgDefinition[];
|
|
24
|
-
compute: (string1: Maybe<FunctionResultObject>, string2: Maybe<FunctionResultObject>) => boolean;
|
|
24
|
+
compute: (this: import("..").EvalContext, string1: Maybe<FunctionResultObject>, string2: Maybe<FunctionResultObject>) => boolean;
|
|
25
25
|
isExported: true;
|
|
26
26
|
};
|
|
27
27
|
export declare const FIND: {
|
|
@@ -38,7 +38,7 @@ export declare const FORMAT_LARGE_NUMBER: {
|
|
|
38
38
|
export declare const JOIN: {
|
|
39
39
|
description: string;
|
|
40
40
|
args: import("..").ArgDefinition[];
|
|
41
|
-
compute: (delimiter: Maybe<FunctionResultObject>, ...valuesOrArrays: Arg[]) => string;
|
|
41
|
+
compute: (this: import("..").EvalContext, delimiter: Maybe<FunctionResultObject>, ...valuesOrArrays: Arg[]) => string;
|
|
42
42
|
};
|
|
43
43
|
export declare const LEFT: {
|
|
44
44
|
description: string;
|
|
@@ -49,13 +49,13 @@ export declare const LEFT: {
|
|
|
49
49
|
export declare const LEN: {
|
|
50
50
|
description: string;
|
|
51
51
|
args: import("..").ArgDefinition[];
|
|
52
|
-
compute: (text: Maybe<FunctionResultObject>) => number;
|
|
52
|
+
compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>) => number;
|
|
53
53
|
isExported: true;
|
|
54
54
|
};
|
|
55
55
|
export declare const LOWER: {
|
|
56
56
|
description: string;
|
|
57
57
|
args: import("..").ArgDefinition[];
|
|
58
|
-
compute: (text: Maybe<FunctionResultObject>) => string;
|
|
58
|
+
compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>) => string;
|
|
59
59
|
isExported: true;
|
|
60
60
|
};
|
|
61
61
|
export declare const MID: {
|
|
@@ -67,7 +67,7 @@ export declare const MID: {
|
|
|
67
67
|
export declare const PROPER: {
|
|
68
68
|
description: string;
|
|
69
69
|
args: import("..").ArgDefinition[];
|
|
70
|
-
compute: (text: Maybe<FunctionResultObject>) => string;
|
|
70
|
+
compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>) => string;
|
|
71
71
|
isExported: true;
|
|
72
72
|
};
|
|
73
73
|
export declare const REGEXTEST: {
|
|
@@ -117,7 +117,7 @@ export declare const SEARCH: {
|
|
|
117
117
|
export declare const SPLIT: {
|
|
118
118
|
description: string;
|
|
119
119
|
args: import("..").ArgDefinition[];
|
|
120
|
-
compute: (text: Maybe<FunctionResultObject>, delimiter: Maybe<FunctionResultObject>, splitByEach?: Maybe<FunctionResultObject>, removeEmptyText?: Maybe<FunctionResultObject>) => EvaluationError | import("..").Matrix<string>;
|
|
120
|
+
compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, delimiter: Maybe<FunctionResultObject>, splitByEach?: Maybe<FunctionResultObject>, removeEmptyText?: Maybe<FunctionResultObject>) => EvaluationError | import("..").Matrix<string>;
|
|
121
121
|
isExported: false;
|
|
122
122
|
};
|
|
123
123
|
export declare const SUBSTITUTE: {
|
|
@@ -129,7 +129,7 @@ export declare const SUBSTITUTE: {
|
|
|
129
129
|
export declare const TEXTJOIN: {
|
|
130
130
|
description: string;
|
|
131
131
|
args: import("..").ArgDefinition[];
|
|
132
|
-
compute: (delimiter: Maybe<FunctionResultObject>, ignoreEmpty?: Maybe<FunctionResultObject>, ...textsOrArrays: Arg[]) => string;
|
|
132
|
+
compute: (this: import("..").EvalContext, delimiter: Maybe<FunctionResultObject>, ignoreEmpty?: Maybe<FunctionResultObject>, ...textsOrArrays: Arg[]) => string;
|
|
133
133
|
isExported: true;
|
|
134
134
|
};
|
|
135
135
|
export declare const TEXTSPLIT: {
|
|
@@ -141,13 +141,13 @@ export declare const TEXTSPLIT: {
|
|
|
141
141
|
export declare const TRIM: {
|
|
142
142
|
description: string;
|
|
143
143
|
args: import("..").ArgDefinition[];
|
|
144
|
-
compute: (text: Maybe<FunctionResultObject>) => string;
|
|
144
|
+
compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>) => string;
|
|
145
145
|
isExported: true;
|
|
146
146
|
};
|
|
147
147
|
export declare const UPPER: {
|
|
148
148
|
description: string;
|
|
149
149
|
args: import("..").ArgDefinition[];
|
|
150
|
-
compute: (text: Maybe<FunctionResultObject>) => string;
|
|
150
|
+
compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>) => string;
|
|
151
151
|
isExported: true;
|
|
152
152
|
};
|
|
153
153
|
export declare const TEXT: {
|
|
@@ -2,6 +2,6 @@ import { FunctionResultObject, Maybe } from "../types/misc";
|
|
|
2
2
|
export declare const HYPERLINK: {
|
|
3
3
|
description: string;
|
|
4
4
|
args: import("..").ArgDefinition[];
|
|
5
|
-
compute: (url: Maybe<FunctionResultObject>, linkLabel: Maybe<FunctionResultObject>) => string;
|
|
5
|
+
compute: (this: import("..").EvalContext, url: Maybe<FunctionResultObject>, linkLabel: Maybe<FunctionResultObject>) => string;
|
|
6
6
|
isExported: true;
|
|
7
7
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -219,6 +219,7 @@ export declare const registries: {
|
|
|
219
219
|
getKeys(): string[];
|
|
220
220
|
remove(key: string): void;
|
|
221
221
|
};
|
|
222
|
+
NonSquishableFunctionRegistry: import(".").Registry<string>;
|
|
222
223
|
};
|
|
223
224
|
/** Registries Population */
|
|
224
225
|
import "./clipboard_handlers/clipboard_handler_registrations";
|
|
@@ -424,7 +425,7 @@ export declare const stores: {
|
|
|
424
425
|
};
|
|
425
426
|
export { getCaretDownSvg, getCaretUpSvg } from "./components/icons/icons";
|
|
426
427
|
export { createAutocompleteArgumentsProvider } from "./functions/autocomplete_arguments_provider";
|
|
427
|
-
export type { FunctionRegistry } from "./functions/function_registry";
|
|
428
|
+
export type { FunctionRegistry, NonSquishableFunctionRegistry, } from "./functions/function_registry";
|
|
428
429
|
export { categories } from "./functions/function_registry_population";
|
|
429
430
|
export type { StoreConstructor, StoreParams } from "./types/store_engine";
|
|
430
431
|
export declare function addFunction(functionName: string, functionDescription: AddFunctionDescription): {
|
|
@@ -47,7 +47,8 @@ export declare class Squisher {
|
|
|
47
47
|
* The result of this method is:
|
|
48
48
|
* - if the cell is not a formula, returns the content as is and resets the base formula
|
|
49
49
|
* - if the cell is a formula:
|
|
50
|
-
* - if there is no previous formula, or the normalized formula is different from the previous one
|
|
50
|
+
* - if there is no previous formula, or the normalized formula is different from the previous one or it contains blacklisted functions (see NonSquishableFunctionRegistry),
|
|
51
|
+
* resets the base formula to this one and returns the full formula string
|
|
51
52
|
* - else, compares the literal values and range dependencies to the previous formula, and for each parameter:
|
|
52
53
|
* - for numbers: returns a relative change (+N or -N) if possible, else the full number or "=" if unchanged
|
|
53
54
|
* - for strings: returns the full string if changed, else "="
|
|
@@ -11,6 +11,7 @@ import { Registry } from "./registry";
|
|
|
11
11
|
export interface FigureContent {
|
|
12
12
|
Component: any;
|
|
13
13
|
menuBuilder: (figureId: UID, env: SpreadsheetChildEnv) => Action[];
|
|
14
|
+
isThemeDependant: boolean;
|
|
14
15
|
SidePanelComponent?: string;
|
|
15
16
|
keepRatio?: boolean;
|
|
16
17
|
minFigSize?: number;
|